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.

September 3, 2026 · 7 min read

A scanned PDF has no text in it. It is a photograph of a page in a PDF wrapper, which is why search finds nothing and selection highlights nothing. Getting the text out means running OCR, and on a Mac you have four options that never touch the network.

I ran three scans through all four: Apple's Vision recognizer (the engine behind Live Text and Preview's Embed Text), Tesseract 5.5.3, and the two local vision-language models ZenOCR ships, DeepSeek-OCR-2 and GLM-OCR. Every output below is verbatim, and the first scan is one where the free tools are entirely sufficient. The app is on the homepage.

If what you actually need is a searchable PDF, stop here

A lot of people searching for this want something specific: a file that is still a PDF, opens in the same viewer, and now responds to Cmd-F. That is a text layer written back into the PDF, and it is a different job from extracting text.

macOS does it for free. Open the scan in Preview, choose File > Export, and tick Embed Text. Preview runs Vision over every page and saves a copy with an invisible text layer behind the image. It looks identical and it is searchable. For batches, or for pages where Preview quietly does nothing, Adobe Acrobat does the same thing more reliably and charges a subscription for it.

ZenOCR does not do this. It outputs text and Markdown; it does not write anything back into a PDF. If a searchable PDF is what you need, use Preview and close this tab.

Everything below is for the other case: you want the words themselves, as text you can paste, edit, search, or feed to something else.

Which kind of scan do you have

python3 -c "import pdfplumber,sys; print(len(pdfplumber.open(sys.argv[1]).pages[0].extract_text() or ''))" file.pdf

Zero means a genuine scan. After that, condition is what decides the tool: clean printed page, damaged old paper, or awkward typewriter impression. I tested one of each, all at 300 DPI.

Scan 1: an ordinary contract, where everything works

Supply agreement page with numbered clauses, defined terms and a signature block

A supply agreement at 11pt with numbered clauses, a defined-terms block and a debt recovery clause full of figures. Scanned at 300 DPI, no text layer.
Apple Vision (free, built in)
3.3 The Supplier may also claim a fixed sum debt recovery charge under the Late Payment of
Commercial Debts (Interest) Act 1998 of 40.00 for debts below 1,000.00, 70.00 for debts
between 1,000.00 and 9,999.99, and 100.00 for debts of 10,000.00 or more.
Word for word correct. It breaks lines where the page breaks them, so the clause arrives as three lines rather than one paragraph.
ZenOCR AI mode (DeepSeek-OCR-2)
3.3 The Supplier may also claim a fixed sum debt recovery charge under the Late Payment of Commercial Debts (Interest) Act 1998 of 40.00 for debts below 1,000.00, 70.00 for debts between 1,000.00 and 9,999.99, and 100.00 for debts of 10,000.00 or more.
Also word for word correct, rejoined into one paragraph, with the section headings emitted as Markdown headings.
Clause 3.3. The document reads: a fixed sum debt recovery charge under the Late Payment of Commercial Debts (Interest) Act 1998 of 40.00 for debts below 1,000.00, 70.00 for debts between 1,000.00 and 9,999.99, and 100.00 for debts of 10,000.00 or more.

ZenOCR window showing the supply agreement transcribed with numbered clauses and defined terms

The contract in the app, on DeepSeek-OCR-2. Clause numbering intact, headings as headings, and the figures in 3.3 exactly as printed.

Over the whole page DeepSeek-OCR-2 came out at 100% word accuracy against the source, and so did Vision. Tesseract matched both. On a clean 300 DPI scan of printed text, the free engine on your Mac is genuinely enough, and any article that tells you otherwise is selling something.

The difference is structure, not characters. Vision returns lines as they sit on the page; DeepSeek-OCR-2 returns paragraphs, headings and the defined-terms block with each term attached to its definition. If you are pasting into a document that matters, that is worth something. If you just need the words, it is not.

Scan 2: a stained page from an old book

Old book page with a large brown stain on the left and visible bleed-through from the reverse side

Page 21 of a 19th-century school reader. A brown stain up the lower left, text bleeding through from the reverse, and one word blotted with ink.
Apple Vision (free, built in)
Farlts of pronunciation: treat-munt for treatment, do-sile for dos-il, ap-er-
ture for ap-ert-ure, cre-tur for creat-ure, scamp-ring for scam-per-ing.
To what can you accustom yourself? How should you read 1 Rule 15
What is to be done if you are becoming embarrassed? What of want of
sell-possession 1 Why should you read carefully ?
Faults became Farlts, self-possession became sell-possession, two question marks became the digit 1, and hyphenated words stay split across the line break.
ZenOCR AI mode (GLM-OCR)
Faults of pronunciation: treat-munt for treatment, do-sile for dos-il, ap-er-ture for ap-ert-ure, cre-tur for creat-ure, scamp-ring for scam-per-ing.

Questions on the Rules. What habit does a good reader acquire? Rule 14. To what can you accustom yourself? How should you read? Rule 15. What is to be done if you are becoming embarrassed? What of want of self-possession? Why should you read carefully?
All three character errors fixed and the hyphenation rejoined. It dropped the running head and the page number 21, which Vision kept.
The page reads: Faults of pronunciation ... How should you read? Rule 15 ... What of want of self-possession?

Vision also dropped the word preparing from the spelling list without any indication that it had. That is the failure mode to watch on damaged paper: not a garbled word you can spot, but a missing one you cannot.

ZenOCR window showing the old book page transcribed into clean paragraphs

The stained page in the app, on GLM-OCR. The hyphenation is rejoined, `preparing` is there, and the three character errors Vision made are not.

Scan 3: a 1927 affidavit

Scanned typewritten 1927 affidavit with numbered margin lines and a handwritten signature

A sworn affidavit establishing twelve birth dates. Uneven typewriter impression, numbered margin lines, a sideways law firm stamp and a handwritten signature.
Tesseract 5.5.3
yw STATES OF AMBRICA)
STATE OP ARIZONA (ss.
2]) couwry oF vavazo )

3 T, ELIZABEW
pose and sey:
Unusable, and obviously so. On a page this uneven, shape matching has nothing stable to match against.
ZenOCR AI mode (DeepSeek-OCR-2)
FESTUS COLUMBUS (JACK), son, born Kings Mill, Arkansas,
1882;
FLAVIOUS THADORE, son, born at Kings Mill, Arkansas, March 21, 1885;
JOHN MARION, son, born Moore County, Texas, February 2, 1887;
RANSOM CROCKETT, son, born Moore County, Texas,
November 17, 1893;
WILLIAM HUSTON and RICHARD AUSTIN, twin sons, born Moore County,
Texas, November 20, 1896;
COLUMBUS, CROCKETT, HUSTON and the dates are right. THEODORE came out as THADORE, and two lines lost their month to the line wrap.
The document reads: GEORGE FREDRICK NAPOLEON, born December 25, 1880; FESTUS COLUMBUS (JACK); RANSOM CROCKETT; WILLIAM HUSTON.

ZenOCR window showing the 1927 affidavit transcribed with the header block and the list of children

The affidavit in the app, on DeepSeek-OCR-2. It reads like a clean transcription, which is exactly why a document like this needs a human pass.

It also recovered the header block that the free engines mangle, including the affiant's name spelled correctly, and kept the document's own spelling of consumated rather than tidying it into consummated. Apple Vision on the same page produced that 7 have rest ded in the Unlie Sea tos d aney-.

This is the honest summary of scan 3: DeepSeek-OCR-2 is the only one of the four that produces something a person could work from, and it still gets names wrong. THEODORE came out THADORE, and the affiant's father, BAILEY REED LEVERTON on the page, came out EAILEY REED LEVERTON. On a document where the specific words are the point, OCR is the first pass, not the last one.

Two models, and picking between them

ZenOCR Model Management panel listing GLM-OCR and DeepSeek-OCR-2 in Ultra, Standard and Lite sizes

The app ships two model families at three sizes each. Each downloads once and then never contacts the network again.

The picker is not decoration and the labels are accurate. DeepSeek-OCR-2 is described as best for clean documents, and it produced every clean-scan result above. GLM-OCR is described as working for almost anything, and it was the better of the two on the stained book page and on a crooked photocopy in the tables article.

If a page comes back worse than you expected, switching model is the first thing to try, before switching app.

For confidential files

The reason any of this is worth doing locally is that the alternative is uploading. Contracts, discovery documents, medical bills, tax returns and client files go to a third party's servers the moment you use a free online converter.

Everything in this article ran on one Mac with nothing sent anywhere. Preview's Embed Text is local. Tesseract is local. ZenOCR downloads its models once on first launch and then never contacts the network again.

That is a statement about where the bytes go, and it is the only kind of statement worth making. It is not a certification and this article makes no compliance claim; if your obligations require one, that assessment is yours and your firm's.

Doing it on a Mac

Drop the file onto ZenOCR and press Start OCR. Leave the model on DeepSeek-OCR-2 for clean scans; switch to GLM-OCR for damaged or crooked pages.

If you are going to paste the result somewhere structured, open Settings and turn off Keep formatting when copying. With it on, the copy is converted to rich text for Mail and Word; with it off you get the raw Markdown exactly as the model produced it.

What this will not do

  • No searchable PDF. Text and Markdown out, nothing written back into the file. Preview's Embed Text or Acrobat, as above.
  • Not a proofreader. It got several names wrong on scan 3 while reading fluently. Check any scan where the specific words matter.
  • Not a reason to stop using Preview. Scan 1 is in this article because the free engine matched the paid one on it.
  • macOS 14 or later, Apple Silicon for AI mode. Intel Macs get Fast mode, which is Apple Vision. No Windows, no iPad, no web version.

What to actually use

Your scanUse
Clean printed page, you want a searchable PDFPreview, File > Export, Embed Text. Free
Clean printed page, you want the textPreview's Embed Text then copy, or Tesseract. Free
Clean page, you want headings and paragraphs, not linesA local model
Faded, stained or damaged paperA local model. This is the case it exists for
Old typewriter, uneven impression, handwritingA local model, then read it against the original
Anything confidentialAny of the above. Not an online converter

Related: what Preview's OCR can and cannot do, extracting tables from a scan when the structure matters more than the prose, and handwriting OCR on a Mac. The app is on the ZenOCR homepage.

Frequently asked questions

How do I get the text out of a scanned PDF on a Mac without uploading it?

Open it in Preview and use File > Export with Embed Text ticked, which runs Apple Vision locally and writes a text layer into a copy of the PDF. For a damaged or awkward page, an OCR app running a local model reads it on the GPU inside your Mac. Both stay on the machine. Online converters do not.

Why can I not select any text in my scanned PDF?

Because there is no text in it. A scan is a picture of a page wrapped in a PDF container, so there are no characters to select. OCR is the step that produces characters, and until you run it, search and copy have nothing to work with.

Is a paid OCR app more accurate than Apple Vision on a scan?

On a clean 300 DPI scan of printed text, usually not by much. Vision reproduced a contract below word for word. The gap opens on faded paper, uneven old typewriter impression, handwriting and complex layout, where Vision starts dropping content without telling you.

Can ZenOCR turn my scan into a searchable PDF?

No. It outputs text and Markdown and does not write a text layer back into the PDF file. If you need the file to stay a PDF and become searchable with Cmd-F, use Preview File > Export with Embed Text, or Adobe Acrobat. That is a different job and this is the wrong tool for it.

Related reading

PDF to LaTeX on a Mac: Mathpix Alternatives Tested

Ways to get LaTeX out of a PDF on a Mac, from free open source tools to Mathpix. Three pages of real maths through three engines, with what each one costs.

7 min read

Mac Preview OCR: Two Free Ways, and Where They Fail

Preview has two built in OCR features and most people only know one. How to use both for free, and the four kinds of page where you need a different tool.

7 min read

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