ChatGPT: Turning handwriting/printing into usable font in Linux

OpenAI ChatGPT LogoThis chat was about my asking if ChatGPT could help me turn handwriting or printing into a usable font. I chose to ask it about using Linux because there are so many open source programs out there to use on my Linux Debian 13 workstation. Note also that I was ony asking about whether ChatGPT would be able to help me with this type of project – not for it to dive in and start indicating what to do.

The Temporary Chat

I used what is called a “temporary” chat in this one. I don’t think I have covered much about using them in my articles here. ChatGPT has a temporary (unsaved) chat mode available. It goes away entirely once you exit it. I just chose that mode as I wanted a fresh perspective. Creating chats in existing projects or even as new ones that will be saved draw upon all your other materials. Plus, using temporary chats helps to reduce the clutter in my account.

As you can see from the output, one does not have to know Linux in depth in order to use ChatGPT for this type of project. It is much like having a buddy that knows pretty much everything necessary to guide you along. I am fortunate to have an extensive background in much of what I use the AI systems for. That background enables me to have a better sense when developing the questions. Plus, I am confident when it is wrong. Which does happen, just like with our buddies on occasion.

Here was my entire raw chat:

If I print out on white paper the letters of the alphabet and the digits 1 through 9 and some other characters, can you help me to create a font set that is my own printing using my Linux workstation? I am just gathering the idea right now and don’t need deep info yet.

Yes. You can turn your handwriting/printing into a usable font on Linux. 🙂

The usual process is:

  1. Print a template sheet with boxes for uppercase, lowercase, digits, punctuation, and symbols.
  2. Fill it in neatly with a dark pen or marker.
  3. Scan it cleanly as a high-resolution image or PDF.
  4. Use font-creation software to trace each character and assign it to its keyboard key.
  5. Export it as a TrueType Font (.ttf) or OpenType Font (.otf) file.
  6. Install it in your Linux user fonts folder, usually ~/.local/share/fonts/, then refresh the font cache with:
    fc-cache -f -v
    

On Linux, FontForge is the classic powerful tool for this. It can import traced letter shapes, adjust spacing, and generate a real font file. Another route is to use an online handwriting-template service for the initial conversion, then refine the result in FontForge.

A first version does not need to be fancy. Start with:

  • A–Z
  • a–z
  • 0–9
  • Period, comma, apostrophe, quotation marks
  • Parentheses, hyphen, slash, question mark, exclamation point
  • @ # $ % & * + =

The tricky parts are not the letters themselves. They are consistent size, baseline alignment, character spacing, and making similar characters look distinct—such as I, l, 1, O, and 0.

It is a very doable home project, and a printed-template-and-scanner workflow is probably the easiest way to capture your own printing.

Along this line, if I supply some cursive examples of my writing, can I create the same (a usable font) that I can use? I am looking to do this on one of my blog sites so I will need to be able to use it in a web page.

Yes. Cursive can become a usable font too, including on a blog site.

For cursive, you would ideally create several versions of letters because handwriting changes depending on what comes before and after. For example, your lowercase r may connect differently after an o than after a t. A basic font can still look quite good with one form of each character, but advanced cursive fonts use alternate letter shapes and connection rules.

For the web, you would export the font in modern web formats, mainly:

.woff2
.woff

Then upload the font files to your site and load them with CSS like this:

@font-face {
  font-family: "Charles Cursive";
  src: url("/fonts/charles-cursive.woff2") format("woff2");
  font-display: swap;
}

.handwriting {
  font-family: "Charles Cursive", cursive;
}

Then use it in a page or post:

<p class="handwriting">This is written in my own cursive style.</p>

A good first approach would be:

  • Write a carefully prepared alphabet sheet in your normal cursive.
  • Include lowercase, uppercase, numbers, punctuation, and common symbols.
  • Add sample connecting pairs such as th, ch, ll, oo, ing, st, and er.
  • Scan it at high resolution with dark ink on plain white paper.
  • Build the first font with FontForge on Linux.
  • Convert the finished font to Web Open Font Format 2 (.woff2) for the website.

One practical warning: cursive fonts work best for headings, pull quotes, signatures, and short notes. Long blog paragraphs in handwriting can become tiring to read, especially on phones.

Your own cursive signature font for article endings or special callout boxes would be a great fit. ✍️

Would the printed version be better for reading?

Yes—usually printed handwriting is much better for reading, especially on a blog.

Print-style letters:

  • Stay clearer at small sizes.
  • Work better on phones and tablets.
  • Make punctuation and numbers easier to distinguish.
  • Need less fancy font programming than cursive connections.
  • Can be used for short paragraphs, labels, captions, and callout boxes.

Cursive is nice for a signature, quote, heading, or personal note. But for regular blog text, your printed style would likely be more practical and more accessible.

A nice setup would be:

  • Your printed font for headings, side notes, and highlighted text.
  • A normal web font for long article paragraphs.
  • Your cursive font only for signatures or decorative touches.

That gives the site personality without making readers work too hard. ✍️