Skip to main content

OCR PDF

Recognize text in scanned PDFs and make them searchable.

No watermarkFree & unlimitedRuns in your browser

Language

Output

Drop a PDF to OCR

Your PDF stays on your device — OCR runs locally in your browser via WebAssembly.

About OCR PDF

OCR PDF runs the Tesseract recognition engine as WebAssembly inside your browser: every page is rendered to a canvas at 150 DPI, read, and then either rebuilt as a searchable PDF with an invisible text layer sitting exactly over the visible page, or saved as plain text. Your document never leaves the device — with one honest caveat. The first time you recognise text in a given language, the engine downloads that language's training data, roughly 10 to 15 MB, from the public jsDelivr CDN, and your browser caches it for every run afterwards. Use it to make a scanned contract searchable, to pull the figures out of a faxed invoice, to index years of paper receipts, or to turn a photographed book page into something you can quote from.

OCR PDF specs

Key facts about OCR PDF on PDFChamp
PriceFree ($0) — no paid tier
AccountNot required
WatermarkNone
Where it runsIn your browser, on your device
File uploadNo file is uploaded
InputPDF (1 file)
OutputSearchable PDF, or TXT
File size limitLimited only by your device's memory
Works offline after the page loadsNo — language data downloads on first run

How to use OCR PDF

  1. Add the scanned PDF

    Drop one document onto the upload area, or click to browse. The page preview appears immediately so you can page through the file before running anything.

  2. Pick the language

    Choose the matching language chip. There is no auto-detection — recognition uses whatever you select, and the wrong choice is the usual cause of garbled output.

  3. Choose the output

    “Searchable PDF” keeps every page as it looks and adds an invisible text layer. “Plain text” skips the PDF and saves the recognised text as a .txt file.

  4. Press Run OCR

    The button reads Run OCR & download PDF or Run OCR & download text depending on the mode. The first run in a new language shows a “Loading OCR engine…” bar while its model downloads.

  5. Watch the per-page progress

    Once the engine is ready the bar switches to “Page N of M”. Keep the tab open — recognition happens in this window, not on a server.

  6. Check the recognised text, then save

    The download starts by itself when the run finishes. Use the preview pager to read the recognised text for each page, and watch for the amber notice that reports any page which could not be given a text layer.

Frequently asked questions about OCR PDF

Does my PDF get uploaded when I run OCR?

Your PDF never leaves your device, but the language model does come down from a public CDN the first time you use it. Recognition itself is local: pages are rendered inside the tab, and the Tesseract engine runs as WebAssembly in a web worker served from pdfchamp.app. The one piece that is not local is the training data. The first time you run OCR in a given language, roughly 10 to 15 MB of model data for that language is fetched from cdn.jsdelivr.net, after which your browser caches it and every later run in that language starts immediately. On a metered connection, budget for that one-off download per language. Fully offline, a language you have already used still works from cache, while a language you have never used cannot start, because its model has never been fetched.

How accurate is the text recognition?

Accuracy depends almost entirely on the page you feed it, and this tool will not quote you a number it cannot stand behind. Recognition is strong on clean, high-contrast printed text that sits straight on the page — a laser-printed contract, a typeset report, a crisp flatbed scan. It degrades on fax-quality output, photographs taken at an angle, faint carbon copies, heavily stylised display type, dense tables, text laid over background images, and pages skewed by more than a degree or two. Before you trust an output, use the preview pane: after a run it shows the recognised text for whichever page you are viewing, so you can page through and judge for yourself. When a page comes back wrong, the usual fixes are rescanning it straighter, raising the contrast, or correcting the language selection.

Which languages can I choose, and does it detect the language by itself?

There is no automatic detection — recognition uses whichever language chip you select, and choosing wrongly is the most common cause of nonsense output. Twenty languages are available: English, Spanish, French, German, Italian, Portuguese, Dutch, Polish, Russian, simplified and traditional Chinese, Japanese, Korean, Arabic, Hindi, Turkish, Finnish, Swedish, Norwegian and Danish. Each has its own trained model with its own character set and word statistics, which is why an English model reads a Polish page badly rather than merely imperfectly. Switching the chip and running again reloads the engine with the new model, downloading it once if you have not used that language before. For a document that mixes languages, pick the one that dominates the body text; short foreign passages usually survive, and accented characters outside the selected model are the first thing to be misread.

Does the output PDF actually become searchable?

In Searchable PDF mode, yes — the finished file keeps every page exactly as it looked and gains an invisible text layer positioned over the recognised words, so find-in-page, text selection and copy-paste all work. Pages that already carried a real text layer are copied through untouched rather than rasterised, so running OCR across a mixed document does not degrade the pages that were already fine. Pages combining a scan with a little native text — a letterhead, a stamp, a page number — keep their original content and get the recognised layer added on top of it. If a page could not be given a text layer, it still appears in the download unchanged and an amber notice tells you how many pages that happened to. The other mode, Plain text, skips the PDF entirely and writes a .txt file.

What scan resolution should the source PDF be?

Around 300 DPI, in grayscale or bilevel, is the practical target for the scan you start from. Inside the tool every page is re-rendered at 150 DPI before recognition — a deliberate compromise between accuracy and the memory a browser tab can hold — and that render is what the engine sees. Scanning your original far above 300 DPI therefore buys little here, while scanning below roughly 200 DPI costs you: thin strokes merge, small type loses the shapes that distinguish it, and digits and punctuation are usually the first characters to be misread. Other properties of the source matter as much as resolution — even lighting, straight alignment, and genuine contrast between ink and paper. A well-lit 200 DPI scan usually beats a shadowed 600 DPI photograph of the same page by a wide margin.

Can it read handwriting?

Handwriting is not something this tool can do reliably. The engine is trained on printed and typeset characters, and the models offered here are the standard printed-text ones; there is no handwriting model in the list. Neat, well-separated block capitals — the kind you get on a form that asked for them — are sometimes recognised well enough to be useful. Ordinary cursive, hurried notes, signatures and margin annotations are not: expect either nonsense or nothing at all for those. If your document mixes a printed form with handwritten answers, running OCR still helps, because the printed part becomes searchable while the handwritten entries simply remain pixels in the page image. For documents that are handwritten throughout, a service built specifically for handwriting recognition is the right tool.

Why in-browser processing matters

Every PDFChamp tool runs inside this page: the file you choose is read by JavaScript in your own browser and is never sent to a server, so nothing is uploaded, queued, or stored anywhere. That removes the upload wait, the processing queue, and the question of what happens to your file afterwards — the about page compares this architecture with server-side PDF tools.

Last updated

Related tools