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.

August 23, 2026 · 7 min read

Preview has OCR, and for a clean printed scan it is genuinely good enough. Two features do the work: Live Text lets you select and copy words straight off a page image, and File > Export with "Embed Text" writes a real text layer into a copy of the PDF so Spotlight and Cmd-F can find it. Neither costs anything and neither uploads your file.

The reason people go looking for something else is narrower than "Preview is bad". It is that Apple's recognizer reads letter shapes without reading the page, so it stays accurate right up until the page stops being ordinary printed text, and then it fails without telling you. Below are the exact steps for both Preview features, the four situations where they break, and three pages I ran through Preview's engine and a local AI OCR model side by side so you can see the difference rather than take my word for it.

Live Text: selecting words out of a page image

Open the file in Preview. Hover over a word. If the pointer turns into an I-beam, Live Text has already recognized the page and you can drag-select and copy exactly as you would in a text document. If the pointer stays an arrow, click Tools > Text Selection first, or check that Live Text is enabled at all in System Settings > General > Language & Region.

That is the entire feature. It is fast, it runs on the machine, and for a typed letter or a standard form it is usually all anyone needs.

Embed Text: making a scanned PDF actually searchable

Live Text is temporary. The words you select are recognized on the fly and thrown away when you close the file, which is why a PDF that felt searchable in Preview turns up nothing in Spotlight. To make the text permanent, choose File > Export, tick Embed Text, and save. macOS recognizes every page and writes an invisible text layer into the new PDF.

This is worth knowing because it is the one job Preview does that most OCR apps do not. ZenOCR, the app I build, cannot do it. It outputs text and Markdown, and it never writes a text layer back into a PDF file. If what you want is a PDF that is still a PDF but has become Cmd-F searchable, Preview's Embed Text or Adobe Acrobat are the honest answers, and this article is not going to try to talk you out of them.

Why Live Text does nothing on your PDF

Five things account for almost every "Preview OCR not working" report:

  1. The file is not open in Preview or Quick Look. Live Text is a feature of those viewers, not of the PDF. Open the same file in Chrome or in a third-party reader and the text is unselectable again.
  2. Live Text is switched off. System Settings > General > Language & Region has a Live Text toggle. It is on by default and people turn it off, sometimes to stop a rendering bug where scanned pages develop black blotches on zoom, reported in r/techsupport.
  3. The scan is too low-resolution or too skewed. Recognition accuracy falls off a cliff below roughly 200 dpi, and a photographed page shot at an angle is worse than a flatbed scan at the same resolution.
  4. The writing is cursive. See the next section.
  5. There is nothing to recognize. If the PDF already has a text layer and selection still does nothing, the problem is the file's encoding, not OCR.

There is also a confusing edge case worth knowing about, reported in r/MacOS on macOS 26: text that appears selectable in Preview but is not embedded, so you cannot tell from Preview alone which of your PDFs are actually searchable.

Three pages, Preview's engine against a local AI model

For each page below I ran Apple's Vision recognizer directly (VNRecognizeTextRequest, revision 3, accurate mode, language correction on) rather than clicking around in Preview, so the runs are reproducible. Vision is the recognizer Live Text is built on, and it is also what ZenOCR's free Fast mode uses. The other column is ZenOCR in AI mode, running GLM-OCR locally on an M2 MacBook Air. AI mode is the paid tier, available during the 7-day trial.

Page 1: handwriting from 1833

Heading of an 1833 handwritten journal in copperplate cursive, reading Suffield 1833 followed by four lines of script

The heading block of a handwritten journal, Suffield, Connecticut, 1833. Photographed on a phone, so the page has a slight curl and uneven light.
Apple Vision (Live Text engine)
Suppula 1803
tome particulars respiding
The sickness S death of Mrs Health
Frances Robinson by
ay her husband
Henry Robinson.
Every proper noun and the date are wrong. Unusable.
ZenOCR AI mode (GLM-OCR)
Suffield 1833
Some particulars respecting
the sickness & death of Mrs Healthy
Frances Robinson by her husband
' Henry Robinson.
One error: "Healthy" for "Wealthy". Plus a stray apostrophe.
Verbatim output. The correct reading is: Suffield 1833 / Some particulars respecting the sickness & death of Mrs Wealthy Frances Robinson by her husband. Henry Robinson.

Preview turns "Suffield 1833" into "Suppula 1803". That is not a transcription with errors in it, it is a different document.

ZenOCR window showing the 1833 journal heading transcribed

The journal heading in the app, AI mode. GLM-OCR's one error is Healthy for Wealthy.

Page 2: a page of equations

Academic page with the relativistic energy-momentum equation and the Schrodinger equation set as display maths

A synthetic journal page carrying two display equations and several inline ones, including the time-independent Schrödinger equation.
Apple Vision (Live Text engine)
E? = (pc)?+ (moc?)?

E=moc.

Yo(2) = (ne) '4
exp -"
mwx?
Superscripts become question marks. The Schrodinger equation was dropped entirely.
ZenOCR AI mode (GLM-OCR)
$$E^2 = (pc)^2 + \left(m_0 c^2\right)^2$$

$$E = m_0 c^2.$$

$$\hat{H} \psi_n(x) = \left(-\frac{\hbar^2}{2m} \frac{d^2}{dx^2} + \frac{1}{2} m \omega^2 x^2\right) \psi_n(x) = E_n \psi_n(x)$$

$$\psi_0(x) = \left(\frac{m \omega}{\pi \hbar}\right)^{1/4} \exp\left(-\frac{m \omega x^2}{2 \hbar}\right)$$
All four equations correct, delimiters included, and the inline maths in the prose too.
Both engines read the prose correctly. Only the equations are shown here.

ZenOCR window showing the equation page with the Schrodinger equation rendered as real maths

The equation page in the app, on GLM-OCR, with the LaTeX it emitted rendered.

Look at what the two columns are doing. Preview is describing the ink of an equation with the nearest available punctuation, which is how E² = (pc)² + (m₀c²)² becomes E? = (pc)?+ (moc?)?. GLM-OCR writes the equation in the notation such things are normally written in, which happens to be LaTeX, and it pastes into a note app or a .tex file without editing.

Page 3: a dense statistical table, where Preview loses the numbers

Research paper page showing four statistical tables with percentile columns and a variance decomposition

A page of tables from a Federal Reserve research paper: a variance decomposition with a formula spanning the header row, and three more tables below it.
Apple Vision (Live Text engine)
Var(In(#)) =
Var (Basket) +
0000515
0.00527
Var(Substitution) + 2 Cov(Basket, Substitution)
0-000213
-0.000225
-41
Values and their column headers are separated. Nothing can be reconstructed.
ZenOCR AI mode (DeepSeek-OCR-2)
Table 5: Contributions of Basket and Substitution Force to Inflation Heterogeneity

<table><tr><td></td><td>Var(ln( $\Psi$ )) =</td><td>Var(Basket) +</td><td>Var(Substitution) +</td><td>2 Cov(Basket, Substitution)</td></tr><tr><td>Value</td><td>0.000545</td><td>0.000527</td><td>0.000243</td><td>-0.000225</td></tr><tr><td>Percent of Total</td><td>100</td><td>97</td><td>45</td><td>-41</td></tr></table>
Caption, header formula and both data rows, every figure correct, inline maths kept as LaTeX.

Preview's output here is not repairable: the figures are corrupted and detached from the headers that give them meaning. DeepSeek-OCR-2, the model used for this page, rebuilt the table with the numbers in the right cells.

ZenOCR window showing the Federal Reserve research tables rebuilt with their figures and notation

The first two of the four tables on that page, in the app, on DeepSeek-OCR-2.

DeepSeek-OCR-2 did the same for the three tables below this one on the page, including a percentile matrix whose header spans four columns.

Two things had to be right for that. The model has to be DeepSeek-OCR-2 rather than the other one in the picker, because dense typeset tables are what it is labelled for. And the page has to be scanned at 300 DPI rather than 150, because that model is fed close to the native image and a dense table stops being legible when you halve it. Get either wrong and this page comes back approximate.

Why this happens: reading letters against reading the page

Vision, Tesseract and ABBYY all work the same way underneath. They cut the image into character-shaped regions and match each region against learned glyph patterns. There is no model of the page: no notion that this line is a heading, that these three columns belong to one table, that a raised digit after a word is a footnote rather than an exponent. When the glyphs are clean and separated, matching shapes is enough and the results are excellent. When letters run together in cursive, or a table has no ruled lines, or a scan is degraded, there is nothing to fall back on and the recognizer guesses per character.

The models in ZenOCR's AI mode are vision-language models, which means they were trained to look at the whole page image and describe it in text. In practice they establish the layout first, then reconstruct the words using a language model's sense of what words normally follow each other. That is why "Some particulars respecting" survives a page of joined-up copperplate: the shapes alone are ambiguous, but very little else fits the context.

The same mechanism is what produces the errors. A model that leans on plausibility will occasionally hand you something plausible instead of something true, which is exactly what "Mrs Healthy" is.

What this app still cannot do

Everything Preview does that it does not, since this article has spent a while on where Preview falls short:

  • No searchable PDF. ZenOCR outputs text and Markdown and never writes a text layer back into a PDF. Preview's Embed Text, described above, is the free answer. Acrobat is the paid one.
  • Not a PDF editor either. No annotating, redacting, merging, form filling or signing. Preview does all of those.
  • macOS 14 or later, Apple Silicon for AI mode. No Windows, no iPad, no web version, and an Intel Mac cannot run the AI models.
  • Not 100 percent accurate. The handwritten page above came back with a name misread, and it is the kind of mistake that reads as if it were right.

So when should you stop using Preview

Keep using Preview when the page is typed, reasonably well scanned, in a Latin script, and laid out in one column. That covers a large share of everyday documents, and paying for anything else would be a waste.

Reach for a dedicated OCR app when the page is handwritten, when it carries mathematics you need as LaTeX, when the layout is multi-column or tabular and you need the structure preserved, or when you need Markdown out the other end rather than a wall of copied text. Those are the cases where the gap is not a few percent of accuracy but the difference between a usable result and a page of noise.

Handwriting OCR on a Mac goes deeper on the cursive case, with four samples and a model that gives up on one of them. Converting PDFs to Markdown offline covers the note-taking and LLM workflow. The app itself is described on the ZenOCR homepage.

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

ZenOCR AI mode, GLM-OCR, returning the full 1833 journal page. The GB figure is peak memory for the model; 19.2 tokens per second is the local decode rate on an M2 MacBook Air.

Frequently asked questions

Does Apple Preview have OCR?

Yes, two separate features. Live Text recognizes text inside an open image or scanned PDF so you can select and copy it. File > Export with "Embed Text" ticked writes a real text layer into a copy of the PDF so it becomes searchable in any app. Live Text is on by default; the export step is not.

Why is Live Text not working on my PDF?

The four usual causes are: the file is open in an app other than Preview or Quick Look, Live Text is switched off in System Settings > General > Language & Region, the page is a low-resolution or skewed scan, or the writing is cursive. Live Text also does nothing on a PDF that already has a text layer, because there is nothing for it to recognize.

What is the built-in OCR on a Mac called?

Live Text. It is built on Apple's Vision framework, which is also what third-party Mac apps use when they advertise instant on-device text recognition.

Can Preview turn a scanned PDF into a searchable PDF for free?

Yes. Open the scan in Preview, choose File > Export, tick "Embed Text", and save. macOS runs recognition over every page and writes the result into the new file as an invisible text layer. This is the one job Preview does that most dedicated OCR apps, ZenOCR included, do not do at all.

Related reading

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

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

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