It runs on your PC, not ours. A separate cloud product is planned

Scans and OCR

OCR Got the Words Wrong

Three hundred dots per inch is what each page is rendered at before recognition starts, and that render is all the engine ever sees. It cannot straighten a page, sharpen a photograph, or reason about what a word ought to have been. Poor input produces confident wrong output rather than an error, which is the part that catches people.

Support articleUpdated

Checked against the current Windows build. Where an article names a menu, a button or a message, that is the wording in the application, not a paraphrase.

Recognition reads the picture and never improves it

Each page is rendered at 300 dpi, converted to grey, thresholded and handed to Tesseract. That image is everything the recogniser works from. It cannot straighten a page photographed at an angle, recover a stroke a low-resolution scan never captured, or use the context around a word the way a person reading the form would.

So the answer to bad output is almost always a better image rather than another run. Scan at 300 dpi rather than 150. Put the page flat instead of photographing it. Watch for the shadow across the gutter of a bound document. A page skewed by more than a degree or two, printed faintly, or compressed hard as a JPEG before it ever reached the PDF gives back words that are wrong and look untroubled about it, which is the property that makes unchecked OCR dangerous.

The language you did not tick

English is ticked when the OCR panel opens and the other eleven are not. A Tamil page recognised as English yields plausible Latin nonsense, and the engine cannot tell you it was reading the wrong script, because it has no way to know. The bundled set is English, Hindi, Marathi, Bengali, Tamil, Telugu, Kannada, Malayalam, Gujarati, Punjabi, Odia and Urdu, all sitting inside the package, with nothing to download the first time you use one.

Tick every script the page uses and only those. A spare language does not cost you nothing: it gives the engine more ways to be wrong about the same smudge. On the command line the same choice reads --lang eng+hin, joined with a plus, using three-letter codes. A hint under the checkboxes says as much, because it is the mistake most people make first.

Two scripts on one page

A certificate with a Marathi heading and an English name needs both ticked, and in Indian paperwork that is the normal case rather than the awkward one. Recognition on a mixed page is genuinely worse than on a single-script one, and the boundary between the two — a name in Latin capitals inside a Devanagari sentence — is where it goes wrong first.

There is a consequence for the file as well. Latin text goes into the invisible layer set in Helvetica, which is never embedded. Any Indic script needs a face whose character map covers it, so those documents embed a subset of Nirmala UI, present on every supported version of Windows. That is why the same page recognised in Hindi produces a slightly larger file than one recognised in English.

Pages that were skipped, and pages that should not have been

“Skip pages that already have text” is ticked by default, which is right for a document that is part typed and part scanned: the typed pages keep the text they have and only the scans are recognised. The result reports both counts, and a document that was already searchable throughout comes back reading “Nothing to recognise: every page already had text.”

That default is wrong in one case. A file that arrived with a poor text layer already inside it, recognised badly by whatever produced it, is skipped rather than improved, because the test is whether text exists and not whether it is any good. Untick the box to recognise those pages anyway, or pass --force on the command line. Handwriting is not recognised at all, in any language, and gives back confident nonsense rather than a refusal.

Check the things that are expensive to get wrong

Search the output for a phrase you can see on the page, which proves the layer is there and roughly aligned. Then read the values nobody revisits: a registration number, a date, an amount, a surname with an unusual spelling. Digits fail most quietly of all, because a wrong digit still looks like a number and reads as authoritative.

The image remains the record. The layer beneath it is a machine’s reading of that image, it is invisible, and an error in it stays invisible until somebody searches for the right thing and finds nothing. Recognition is held in the edit session like any other change, so if the result is worse than the scan was, Discard costs you nothing. The OCR guide covers the rest of the job.

IF THIS DID NOT HELP

The two places worth looking next.

Read the matching guide if you want the reasoning rather than the fix, and check limitations before spending any longer on it — some of what people look for here is absent on purpose.