Handwriting OCR on a Mac: Which Tools Read Cursive

Three ways to read handwriting on a Mac, tested on the same four samples. Apple Live Text is free and handles neat printing. Only one of the three read cursive.

August 26, 2026 · 8 min read

Apple's Live Text reads hand-printed block capitals on a form quite well and reads cursive not at all. That is the short version, and it is why "handwriting OCR" is a different product category from OCR. Tesseract, the free open-source engine most tutorials point at, is worse: on the four samples below it returned no recoverable words from any cursive page.

What does work is a different kind of model, one that reads the page before it reads the letters. Below I run four handwriting samples of increasing difficulty through Apple Vision, Tesseract 5.5.3, and two AI models running locally on an M2 MacBook Air, and print every output exactly as it came out. On the hardest sample one of the two local models quietly rewrites the page instead of failing. That result is in here too.

Why ordinary OCR falls apart on handwriting

Tesseract, Apple Vision and ABBYY are built on the same idea: cut the image into character-sized regions, then match each region against learned glyph shapes. It is a good idea for print, where every letter is separated by design and every "a" is the same "a".

Cursive breaks the first step before the second one gets a chance. There are no character boundaries in joined-up writing. A word is one continuous stroke with rhythmic bumps in it, and where one letter stops and the next begins is a decision, not a fact in the image. An engine that must segment first has to guess, and one bad guess corrupts the whole word.

This is the recurring complaint in r/LocalLLaMA threads on the subject. One person testing engines for a handwriting corpus put it as "Tesseract seems to be the best choice for printed text, but is basically useless for handwritten"; another, working on preprocessing to improve results, concluded "No open-ish model I'm aware of does a sufficiently good job when it comes to OCR on handwriting". Those threads are a year old and the second one has aged; the first has not.

Vision-language models work the other way round. They are trained to look at a whole page image and produce text describing it, so the layout is established first and the words are reconstructed with a language model's sense of what normally follows what. Ambiguous strokes get resolved by context rather than by shape alone, which is exactly what a human paleographer does with an old letter.

The four samples

Two sources. The first is a photograph of an IRS Form 5500-EZ filled in by hand with dummy details, from a public OCR test corpus. The rest are crops from one photographed page of a private journal kept in Suffield, Connecticut in 1833, written in copperplate cursive, shot on a phone so it carries page curl and uneven light.

#SampleWhat makes it hard
1Hand-filled tax formBlock printing and numerals over dense printed boilerplate
2Journal headingLarge, careful cursive with flourishes
3Journal body paragraphDense running cursive, an interlinear insertion
4Full journal pageAll of the above, plus page curl, uneven light and the volume of text

Every AI-model column below is ZenOCR in AI mode, which is the paid tier and is available during the 7-day trial. Apple Vision was run directly through VNRecognizeTextRequest (revision 3, accurate, language correction on), which is the recognizer behind Live Text and behind ZenOCR's free Fast mode.

Sample 1: hand-printed form fields

Photographed IRS Form 5500-EZ with handwritten entries in block capitals in the employer and plan fields

A dummy-filled IRS Form 5500-EZ, photographed rather than scanned. The handwriting is block printing, the easy end of the range.
Apple Vision (Live Text engine)
Form Number: CA530082
01/02/202 Zand ending 0/02
586
Annual Return plan
Acme Corp Software
02/05/2022
735268329
011536259
532678
5732900
Reads most of the handwritten values, the plan number and the effective date included, but returns them as a loose list with nothing attached to its label.
ZenOCR AI mode (GLM-OCR)
1a Name of plan
Annual Return Plan

1b Three-digit plan number (PN) 586

1c Date plan first became effective
(MM/DD/YYYY)
02/10/2022

2a Employer's name Acme Corp Software

2b Employer Identification Number (EIN)
735268329

3b Administrator's EIN 532678
Values attached to their field labels. But 1c should read 02/05/2022, not 02/10/2022.
Only the handwritten field values are shown. Both engines read the printed boilerplate reasonably well.

ZenOCR window showing the handwritten tax form transcribed with values paired to field labels

The filled form in the app, AI mode on GLM-OCR. Handwritten values sit with the labels they belong to.

This is the sample where Live Text is genuinely useful. It recognized the block printing, and it read the numerals accurately. What it did not do is connect any value to the field it belongs to, so you get "532678" with no way to know it is an administrator's EIN, and the plan-year dates arrive fused into "01/02/202 Zand ending 0/02".

GLM-OCR attached every value to its label and then got two dates wrong: 02/10/2022 for 02/05/2022 in field 1c, and 01/02/2023 for the plan-year start of 01/02/2022. Vision, which could not tell you which field it belonged to, read the 1c date itself correctly. On a form, a wrong number that looks confident is worse than a missing one. Check the figures.

Worth noting, because this is where the paid model loses: on the printed boilerplate of this same form, Apple Vision was more accurate. Vision read "section 6058(a) of the Internal Revenue Code" and the URL "www.irs.gov/Form5500EZ" exactly as printed. GLM-OCR rendered the section as "608(a)", turned "Late Filer" into "Late Filing", and replaced the IRS URL with an invented one, "www.powermonkeyez.com", which is the clearest example in this article of a model producing something fluent and entirely false. For clean printed text, Fast mode is not a downgrade.

Samples 2 and 3: cursive

Heading of an 1833 handwritten journal in copperplate cursive with a ruled line beneath it

Sample 2, the heading block. Correct reading: Suffield 1833 / Some particulars respecting the sickness & death of Mrs Wealthy Frances Robinson by her husband. Henry Robinson.
Apple Vision
Suppula 1803
tome particulars respiding
The sickness S death of Mrs Health
Frances Robinson by
ay her husband
Henry Robinson.
Place name and date both wrong. Not recoverable.
Tesseract 5.5.3
yA, - fi; gr : f Z 4 a/
tt
4.
Cj Spone. far CLLL APD pebfiecliteg
the wih redd 'Ae athe. of Mrs Goal lleg
a 'L00 oe
Two correct words in the whole block: "the" and "Mrs".
ZenOCR AI mode (GLM-OCR)
Suffield 1833
Some particulars respecting
the sickness & death of Mrs Healthy
Frances Robinson by her husband
' Henry Robinson.
One wrong word, "Healthy" for "Wealthy", and a stray apostrophe.

ZenOCR window showing the 1833 journal heading transcribed

The heading block in the app, on GLM-OCR.

Dense paragraph of 1833 cursive describing an illness, with an interlinear caret insertion

Sample 3, a body paragraph. Note the caret insertion above the line after 'Dec.', which is where both AI runs go wrong.
Apple Vision
Ілеб. Пев. 12. 1833- the last scenes of
beloved wife commenced this day.
he dideade of the heast with which she has
been afflicted for westa year, s which has
probably been decritty undermining her
constitution for a nice longer period had,
Opens by hallucinating Cyrillic. "the last scenes of" should be "The last sickness of".
Tesseract 5.5.3
ee
Lee nlf fo wench prs hake Kad
pore Oa ble ee decrilie cinccharenetecetey her
ff Cade; frrT te a. trove. Ltiriate e afficarnuee
Ce oe ee. og Wee hak
aterete cevMre tee as A Maacnare far abee/ az tech,
Zero correct words.
ZenOCR AI mode (GLM-OCR)
Fues. Feb. 12. 1833_ The last sickness of my beloved wife commenced this day. The disease of the heart with which she has been afflicted for nearly a year, & which has probably been secretly undermining her constitution for a much longer period, has, of late, put on a more threatening appearance, & much reduced her strength; particularly the attack she had on the 24th of Dec. and which continued very severe for about a week.
Three errors: "Fues." for "Tues.", "24th" for "29th", and the caret insertion "last" dropped from "Dec. last and".
Tesseract's full output for this paragraph is reproduced. It is not truncated.

ZenOCR window showing the 1833 journal body paragraph transcribed

The body paragraph in the app, on GLM-OCR. The three errors named above are visible in it.

Three errors in eighty words, two of them on the dateline and the date. This is the honest shape of the result: the prose is transcribed, the numerals and the marginal insertion are not reliable, and a transcription you intend to keep still needs a read-through against the original.

Sample 4: the whole page, where the wrong model rewrites it

Full page of an 1833 handwritten journal photographed at a slight angle, showing page curl at the spine

The full page as photographed. Curl at the spine and uneven light across the top.

Rather than print four long columns, here is what each engine returned by volume, against a page holding roughly 950 characters of text:

EngineOutputVerdict
Apple Vision890 charsRight length, wrong words. "Luppield 1803", "seired with violent spass".
Tesseract 5.5.3620 charsNo recoverable words.
ZenOCR AI mode, GLM-OCR947 charsNear-complete transcription. The same "Fues." and "24th" errors as sample 3, and here the caret insertion came out as "could".
ZenOCR AI mode, DeepSeek-OCR-2912 charsFull length, but it read "my beloved wife" as "my father" and lost the dateline.

That last row is the reason the app ships two models and puts the choice in front of you. DeepSeek-OCR-2 is the stronger of the two on clean printed documents and tables, and on handwriting it is clearly the weaker: it produced a full-length transcription that reads fluently and changes who the diarist is writing about. GLM-OCR is the one to use for pages like this, and if a result looks off, switching model is the first thing to try.

ZenOCR app window showing the transcribed 1833 journal page in its preview pane

The same page in ZenOCR itself, AI mode, GLM-OCR. Recognition ran at 19.2 tokens per second on an M2 MacBook Air.

Doing it on your own Mac

Drop the image or PDF onto ZenOCR, confirm the model selector at the bottom of the window is on a GLM-OCR build rather than Fast mode, and press Start. Pages queue and run one at a time, so a box of scanned letters can go in as one batch.

ZenOCR window listing six queued image files with their pixel dimensions, the last one finished and saved to Downloads

Six pages queued. Each shows its pixel dimensions, which matters: recognition quality on handwriting drops sharply below about 1500 px on the long edge.

Two things that changed my results more than any setting:

  1. Photograph the page flat and evenly lit. Curl and shadow cost more accuracy than resolution does.
  2. Crop to one block of writing when a page fails. Sample 2 and sample 3 are crops of sample 4, and the cropped paragraph came back slightly cleaner than the same paragraph read as part of the whole page.

Why handwriting is the private case

Every accurate handwriting service ranking for these searches is a cloud service. Transkribus, handwritingocr.com and the pen-to-print apps all require you to upload the pages, and their accuracy is real, so this is a genuine trade rather than a talking point.

It is worth thinking about anyway, because handwriting skews personal in a way print does not. Print is usually something an institution sent you. Handwriting is diaries, letters, clinical notes, case files, and a box of paper someone left behind. The pages in this article are a dying woman's medical history written by her husband in 1833, which is only publishable because everyone involved has been dead for a century.

ZenOCR downloads its models once on first launch and does not contact the network again. The pages stay on the machine. That is a statement about where the files go, not a certification of anything.

What it still cannot do

  • Not accurate enough to skip proofreading. Every sample above contains at least one error, and on samples 3 and 4 those errors are dates. Read a transcription you intend to keep against the page.
  • No searchable PDF of your scans. Text and Markdown come out; nothing is written back into the PDF. If you want a box of scanned letters to stay scans and also become Cmd-F searchable, that is Preview's File > Export with Embed Text, covered in the Preview walkthrough, or Acrobat.
  • macOS 14 or later, Apple Silicon for AI mode. No Windows, no iPad, no web version, and Intel Macs cannot run the models.

What I would actually tell you to do

If your handwriting is block printing on forms, try Live Text first. It is already installed and it costs nothing.

If it is cursive, nothing on your Mac will read it and Tesseract will waste your afternoon. The real choice is between uploading the pages to a cloud service and running a model locally. If the pages are letters from strangers you are transcribing for a project, upload them and use the best service you can find. If they are your family's, or your clients', run them locally.

More on the other cases: handwritten and printed mathematics, turning PDFs into Markdown offline, and what macOS Preview can and cannot read. What the app does beyond handwriting is on the ZenOCR homepage.

Frequently asked questions

Can OCR read handwriting?

Traditional OCR mostly cannot. Engines like Tesseract and Apple Vision match individual letter shapes, and joined-up writing has no clean letter boundaries to match. Vision-language models, which read the whole page before transcribing it, do read cursive, including nineteenth-century copperplate.

Which OCR is best for handwriting on a Mac?

Nothing built into macOS handles cursive. Among third-party options, the accurate ones are all vision-language models. The choice is really between cloud services such as Transkribus and handwritingocr.com, which need you to upload the pages, and an app that runs the model on your own Mac.

What is the best free OCR software for handwritten text?

Tesseract is free, open source and the wrong tool: on the samples in this article it produced no recoverable words at all. Apple Live Text is free and already on your Mac, and it is worth trying first because on hand-printed block letters it works. On cursive it does not.

Can OCR convert handwriting to a Word document?

Indirectly. Most handwriting recognition tools output plain text or Markdown, which you then paste into Word or Pages. ZenOCR outputs text and Markdown only; it does not write .docx, and it cannot produce a searchable PDF either.

Related reading

TextSniper vs OwlOCR vs ZenOCR: Which to Buy

TextSniper, OwlOCR, Prizmo and six more, with what each really costs. Several call the same Apple engine, so here is which ones give you a different result.

6 min read

Best OCR App for Mac in 2026: 9 Apps Tested

Nine Mac OCR apps with prices checked and tested on the same pages. Four share one recognition engine, so the real choice is smaller than it looks.

6 min read

Scanned PDF to Text on a Mac: Is Free OCR Enough?

Four OCR tools on a Mac, tested on the same three scans. On a clean page the free ones are enough. Here is where they start dropping text without telling you.

7 min read