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. ✍️

Grok: Facebook Meta Business Phishing Attempts

Facebook Meta Business Phishing Attempts in Grok

These queries to Gemini, ChatGPT and Grok were made as a result of continued emails we had been receiving at CharlesWorks from Meta Business. They indicated someone was attempting admin access to manage a Facebook account that perhaps we managed. I suspected they were Facebook Meta Business phishing attempts messages although was not entirely sure. The AI systems all verified my suspicions.

Included with this prompt was a 15k text file containing the text from the email in question as well as its header information from my Outlook web mail. While my raw file was accepted in ChatGPT and Gemini, I had to change the file’s encoding for Grok to accept it. I originally received an error when trying to upload the text file:
{“code”:12,”message”:”Unsupported text encoding [WKE=file:type-not-supported]”,”details”:[]}

Here is my Grok raw conversation. The ChatGPT conversation and Gemini conversation were in my previous two posts.

I keep getting these emails indicating they are from Facebook and from what I gather, they are indications that someone is attempting to manage a Facebook page we are an admin on. I have marked them as phishing attempts. Is that what they are?

Grok AI logoYes, these are phishing/scam attempts, even though the emails themselves are technically sent by Meta’s real systems.

What’s happening:

Scammers create a fake Business Manager account (often with a deceptive name like “Meta Platforms” or something that sounds official) and send partner requests to your Facebook Page or ad account through Meta’s own platform. Meta then automatically generates and sends a legitimate notification email from no*****@***************ok.com.

This is why:
– The email passes SPF/DKIM/DMARC checks.
– The headers look authentic (as seen in your file).
– It includes real Meta branding and warnings about fraud.

The goal is to trick you into going to Business Suite and approving the partner request. If you do, the scammers gain access to your Page, ad accounts, pixels, etc., which they can then hijack, run unauthorized ads, steal money, or lock you out.

Specifics from your email:

– The “This request is from: Meta Platforms” part is the scammers abusing the system (they name their fake business something official-sounding).
– The m.me/111998437174036 link is suspicious (it’s just a generic Messenger link with no useful public info).
– The email includes the standard “Protect yourself from fraud” text — which is Meta’s own disclaimer, ironically being used against you.

What you should do:

1. Never approve unknown partner requests. Ignore or reject them in Business Suite.
2. Do not click any links in these emails. Instead, log in directly to [business.facebook.com](https://business.facebook.com) or the Meta Business Suite app (type the URL yourself).
3. Review your current partners and remove any you don’t recognize.
4. Check who has admin access to your Pages and ad accounts.
5. Enable extra security like two-factor authentication and login alerts.

You’re right to treat them as suspicious and mark them as phishing — that’s the correct instinct. Unfortunately, this is a widespread campaign right now, and Meta’s system makes it very convincing because the emails are genuine notifications about real (but malicious) requests.

If you go into Business Suite and see pending requests from unknown businesses, deny them immediately. Stay safe!

ChatGPT: Facebook Meta Business Phishing Attempts

Facebook Meta Business Phishing Attempts in ChatGPT

This query to both Gemini and ChatGPT was made as a result of continued emails we received at CharlesWorks indicating they were from Meta Business. They said someone was attempting admin access approval to purportedly manage a Facebook account that perhaps we managed. I suspected they were Facebook Meta Business phishing attempts messages although was not entirely sure. The AI systems both verified my suspicions.

Here is my ChatGPT raw conversation. The Gemini conversation was in the previous post.

I keep getting these emails indicating they are from Facebook and from what I gather, they are indications that someone is attempting to manage a Facebook page we are an admin on. I have marked them as phishing attempts. Is that what they are?

OpenAI ChatGPT LogoYes — I would treat these as hostile/phishing attempts, even though this particular email appears to have been sent through Facebook/Meta’s real mail system.

That sounds contradictory, but here’s the key point: the email authentication looks legitimate, but the request itself is suspicious.

The headers show:

spf=pass
dkim=pass
dmarc=pass
smtp.mailfrom=business.facebook.com
From: "Facebook" <no*****@***************ok.com>

So this does not look like an ordinary spoofed email. It appears to have genuinely come from Meta/Facebook’s system. The uploaded email also says it was sent to su*****@**********ks.com and describes a Business Manager partner request.

However, the suspicious part is the requester and wording:

“This request is from: Meta Platforms, please see the support link above for more details.”

That is odd. A normal partner request should usually come from a real agency, client, marketing company, or known business — not vaguely from “Meta Platforms.” Also, the message includes m.me/111998437174036, which is a Messenger link, and the email itself warns that “Other links is not part of or affiliated with Meta.”

This matches a newer scam pattern where attackers abuse the real Meta Business Manager partner request system. In those cases, the notification can pass SPF, DKIM, and DMARC because Meta really sent the notification, but the attacker created the underlying business request to trick you into clicking or granting access. Security writeups in 2026 describe this exact tactic: real-looking Meta Business Manager partner request emails generated through legitimate Meta workflows, sometimes with phishing links or malicious business names embedded in the request. (Prophet Security)

So your instinct was right. 👍

Do not approve it. Do not click the email links. Instead, go directly in your browser to:

https://business.facebook.com/

Then check:

Business Settings → Requests → Received

If you see this request there and you do not recognize the business, decline it. If there is a report option, report it there as well.

My practical recommendation:

  1. Keep marking them as phishing/junk.
  2. Do not click “View request” from the email.
  3. Log into Meta Business Suite directly at https://business.facebook.com/.
  4. Decline any unknown partner requests.
  5. Review current Page/business admins and partners.
  6. Make sure every CharlesWorks Facebook admin has two-factor authentication enabled.

Bottom line: the email may be technically authentic, but the access request is almost certainly unwanted and potentially dangerous. It is the Facebook version of somebody rattling the doorknob while wearing a fake badge.

Gemini: Facebook Meta Business Phishing Attempts

Facebook Meta Business Phishing Attempts in Gemini

These queries to Gemini and ChatGPT were made as a result of continued emails we had been receiving at CharlesWorks from Meta Business. They indicate someone was attempting admin access to manage a Facebook account that perhaps we managed. I suspected they were Facebook Meta Business phishing attempts messages although was not entirely sure. The AI systems verified my suspicions.

Included with this prompt was a 15k text file containing the text from the email in question as well as its header information from my Outlook web mail. Here is my Gemini raw conversation. My ChatGPT conversation on this topic follows in the next post and my Grok conversation follows in the one after that.

I keep getting these emails indicating they are from Facebook and from what I gather, they are indications that someone is attempting to manage a Facebook page we are an admin on. I have marked them as phishing attempts. Is that what they are?

Gemini AI LogoInterestingly, the email headers reveal that this specific message is actually technically legitimate, but the intent behind it is highly malicious.

You are completely right to treat this as a phishing and scam attempt. Here is the breakdown of what is happening.

The Technical Reality: It’s a “Legitimate” Notification

The email headers show that this message genuinely originated from Meta’s servers:

  • Sender Verification: The Authentication-Results show that SPF, DKIM, and DMARC all passed perfectly for the domain business.facebook.com.

  • Sender IP: The sending IP (66.220.144.149) belongs directly to Facebook.

This means a scammer did not spoof the email itself. Instead, they are exploiting Meta’s actual Business Manager system to send you a real notification for a fraudulent request.

The Scam: Rogue Partner Requests

Scammers routinely set up fake Meta Business accounts, naming them things like “Meta Platforms,” “Meta Security,” or “Community Support.”

They then flood random Business Manager IDs with “Partner Requests.” Because they are using the official platform, Meta automatically triggers a real notification email to you.

What Happens If You Approve It?

If you click through and accept the partnership request in your Meta Business Suite, you will manually grant the scammers admin-level access to your business assets. This allows them to:

  • Hijack your Facebook Pages.

  • Lock you out of your own accounts.

  • Run fraudulent advertisements using your attached credit lines or payment methods.

Why the Email Looks Weird

Take a look at the text inside the email body:

Your Business Is Approved for Partnership m.me/111998437174036 Other links is not part of or affiliated with Meta.

The text containing the random Messenger link (m.me/...) was typed into a customizable field by the scammer when they submitted the partner request. They are trying to trick you into clicking that chat link to pull you into a secondary phishing conversation.

What You Should Do

You handled this perfectly by marking it as phishing. To protect your business assets going forward:

  • Do Not Click Links: Avoid clicking any links inside these emails or the m.me chat links.

  • Check Meta Business Suite Directly: If you ever want to verify a request, open a browser window, log in as root/admin directly at business.facebook.com, and check your requests notifications dashboard there.

  • Reject and Report: If you see the request sitting in your actual Meta Business Suite, reject it immediately and report the requesting business entity to Meta.