The short version
Drop a scanned PDF, or photos of pages, and it opens in a full-screen workspace. Each page is read by the Tesseract engine running in your browser and gets an invisible text layer placed word for word over the scan. Every recognised word is boxed on the page, the uncertain ones in red, and the text sits beside it with a confidence figure. Pages that already have text are skipped.

How it works

1

Render

Each page is drawn at the detail level you pick. 200 dpi suits most office scans; 300 dpi helps with small print or faint copies.

2

Read

The recogniser finds lines and words and reports a confidence for each. Sideways pages are stood upright and a crooked scan is straightened before it is read, because a line that climbs across the page is not one row of pixels to a recogniser.

3

Check

Every word is boxed on the page in the workspace, red where the engine was unsure, and the full text appears in the panel with the overall confidence.

4

Download

The searchable PDF downloads with the words written in invisible ink at the exact spot they appear, so a search hit highlights the right place. The plain text can be saved too.

Engine
Tesseract

The open source recogniser used by Google Books, running as WebAssembly.

Upload
None

The engine and the language data load once and then work offline.

Layer
Invisible

The scan is untouched; text sits over it in render mode 3.

What a text layer is

A PDF page can carry text drawn in a mode the PDF specification calls invisible: the glyphs are positioned and sized like any other text, but nothing is painted. Readers still index it, select it, and highlight the region when a search matches. Every commercial OCR product, from Acrobat to the scanner bundled apps, produces this same structure. The picture of the page stays exactly as it was; the text is added underneath it.

What OCR addsThe scan stays. Invisible words go on top of it
Beforea picture of a pageNothing to select. Search finds nothing.Afterthe same picture, untouchedinvisible text, sitting exactly on topSelectable and searchable.
Recognition never repaints the page. It writes the words it read into an invisible layer positioned over the picture, so what you see is the original scan and what you select is the text.

Because each word is placed at the coordinates the recogniser reported, selecting a passage in the finished file draws the highlight over the printed words themselves, and copying it gives you the words in reading order.

What decides the accuracy

Three things matter far more than the engine: resolution, contrast and skew. Skew is handled for you. Every page is measured before it is read, and a lean of more than about a fifth of a degree is corrected, which is worth more than any other setting on this page because a recogniser reads a line and a leaning line is not one. That leaves resolution and contrast, which are decided at the scanner: a 300 dpi scan of a clean laser-printed page reads at well over 99 percent, and a 100 dpi fax of a photocopy does not. If the confidence figure comes back below about 70, a rescan will do more than anything here. Photos taken with a phone read well when the page fills the frame and the lighting is even; shadows across the page are the usual cause of missed words.

The red boxes in the workspace are the fastest way to judge a result: a scattering of red on names and numbers means a quick proofread; red everywhere means rescan.

Languages

The English model is bundled with the site so nothing is fetched from a third party. The recogniser itself supports over a hundred languages; more language packs are being added, and each is about two megabytes. Until then, text in Latin-script languages with accents still reads reasonably with the English model, though accented characters may be simplified.

Where it stops

Handwriting is not supported; the engine is trained on print. Very large documents take time, since every page is read on your processor: expect roughly three to eight seconds per page on a laptop, and longer on a phone. The text layer uses a standard Latin font, so characters outside Western European alphabets are not written into the layer even when they appear in the .txt output.

The tool is right above

Everything on this page runs in your browser. Scroll up, drop the file, and keep it on your machine.

Jump to the tool

Common questions

What people ask before they press the button.

01Will the file look different afterwards?

No. The scan is kept as it is. The only change is the invisible text placed over it, plus a rotation fix if a page was sideways and you left that option on.

02Is the text accurate?

On clean 300 dpi scans of printed text, almost entirely. The workspace boxes every word and colours the uncertain ones red, and the panel shows the text and the average confidence, so you can check names and figures before relying on them.

03Can I OCR photos of documents?

Yes. Drop JPG, PNG or WEBP photos and each becomes a page with its text layer. Fill the frame with the page and avoid shadows for the best result.

04Does it upload my documents?

No. The recogniser is a WebAssembly build of Tesseract that runs in your browser. The language data is served from this site, and after the first load nothing further is fetched.

05Why are some pages skipped?

They already have a text layer, marked "text" in the page rail, which means they were produced from a word processor or were OCRed before. Untick the skip option to read them anyway.

06Which languages are available?

English at the moment, with more packs on the way. The .txt output still contains whatever the engine read, including accented characters.