Skip to content

PDF OCR – Extract Text from Scanned PDF Free Online

Loading OCR Tool...

This tool turns a scanned or image-only PDF into a document with a real text layer, using Tesseract.js — an open-source OCR engine compiled to WebAssembly — running entirely in your browser tab. Nothing is uploaded: the PDF is rendered page by page to a canvas, each page is recognized on-device, and the recognized words are embedded back into a new PDF alongside the page image (in high-contrast grayscale when the default Enhance image option is on), so the text underneath can be selected, searched and copied.

Recognition quality depends heavily on the scan you feed it. A clean, upright, well-lit page of printed text at a reasonable resolution recognizes far better than a skewed photo taken at an angle, a low-resolution fax-quality scan, or a page with handwriting — Tesseract is built for printed text and struggles with cursive or handwritten content. You choose the document's language(s) before running it, since the wrong language model will misread accented or non-Latin characters badly, and you can turn on an image-enhancement step (grayscale, contrast boost, upscaling) that usually helps borderline scans.

How it works

  1. 1. Drop a scanned PDF

    Drag a .pdf onto the upload area or click to browse. Files over 20 MB are turned away here; if the PDF is encrypted, it's rejected with “This PDF is encrypted and its pages cannot be accessed. Please unlock it first using the PDF Unlock tool.”

  2. 2. Pick language(s) and options

    Select one or more languages from the Language(s) picker (English is selected by default) — pick every language actually present in the document, since Tesseract runs a combined model for all of them. Choose a Performance mode (Auto, Lite, or Full), a Content type (Auto, Dense paragraph / book, Sparse / scattered, or Single line), and leave Enhance image on unless your scan is already crisp.

  3. 3. Run “Make PDF Searchable”

    The button is disabled until at least one language is selected. Progress moves through Loading PDF…, Initializing OCR engine…, Downloading language data (only on first use — language files are cached afterward), then Recognized X of Y pages as each page finishes.

  4. 4. Review and download

    The result view opens three tabs: Searchable PDF, Extracted Text, and (desktop only) Split View, which shows both side by side. Use Download Searchable PDF for the new PDF, Download .TXT for a plain-text file, or Copy text to put the recognized text on your clipboard.

When you'd use it

  • A scanned mark sheet or certificate

    Institutions often hand out photocopied or scanned certificates. Running OCR lets you search for a name or roll number across a folder of scans, or copy a line of text out instead of retyping it by hand.

  • A photographed receipt or invoice

    A phone photo of a paper receipt converted to PDF has no selectable text at all. OCR gives you a copy-pasteable total and date for expense records, without retyping every field.

  • An old contract or letter that only exists on paper

    Once a physical document is scanned to PDF, OCR is what makes it searchable — so you can find the one clause you need in a stack of scanned pages instead of reading through each one.

  • Multilingual documents

    The language picker supports 50+ languages including Hindi, Tamil, Telugu, Bengali, Kannada, Malayalam, Marathi, Gujarati, Punjabi and Urdu, and you can select more than one at once for a document that mixes English with a regional language.

Getting a good scan: what actually improves accuracy

Content type matters more than most people expect — it controls Tesseract's page-segmentation mode, which the engine itself documents as the single biggest lever for accuracy. “Auto” works for most single-column documents; switch to “Dense paragraph / book” for a page that's a uniform block of body text, “Sparse / scattered” for forms or screenshots where text sits in separate boxes rather than flowing paragraphs, and “Single line” for a photo of just one line, like a title or a printed plate.

The Enhance image toggle applies grayscale conversion, a contrast boost, and upscaling to the source image before recognition, which typically helps low-contrast or slightly blurry scans; it's on by default. Because Enhance image converts the rendered page to high-contrast grayscale, colored elements like blue ink stamps or colored logos will appear in grayscale in the generated PDF unless you turn Enhance image off. Performance mode doesn't change recognition quality — it only changes how much of the device's resources the run uses: Lite processes one page at a time at a lower render resolution for older or low-memory devices, Full renders larger and runs multiple pages in parallel on capable hardware, and Auto picks between them based on your device. On a detected low-end device, Auto locks to the faster mode automatically and shows a note with a “Switch to Full” link if you want to override it.

Supported languages and the language model

The picker lists 52 languages, from Afrikaans to Welsh, including English, Hindi, Bengali, Gujarati, Kannada, Malayalam, Marathi, Punjabi, Tamil, Telugu and Urdu. Each language's model (roughly 1–2 MB) downloads the first time you use it and is then cached in your browser (IndexedDB) so later runs, including offline, don't re-download it. There's no separate “quality” tier to pick — the tool always uses Tesseract's compact, integerized “fast” language models for every run; that keeps downloads small and recognition quick, but it is not the maximum-accuracy model Tesseract can technically run.

Selecting more languages than the document actually contains can hurt accuracy, since the engine has to disambiguate between similar-looking characters across all selected languages at once. Pick only the language(s) genuinely present in your scan.

Searchable PDF vs extracted text: what each output is for

The Searchable PDF tab produces a new PDF where each page embeds the scanned image (in high-contrast grayscale when the default Enhance image option is enabled), with an invisible text layer placed over it — open it in any PDF reader and Ctrl/Cmd+F will find and highlight text on the page, just like a normal typed document. The Extracted Text tab is the plain recognized text with no formatting or layout, useful when you just want to copy a paragraph or search across pages in one long block rather than open the PDF at all.

If a page produces no recognizable text at all — a blank page, or a scan too degraded for Tesseract to read anything from — the tool shows “We couldn't build a searchable PDF from this document. No recognizable pages were produced — please try a clearer or higher-resolution scan.” rather than returning an empty result silently.

Frequently asked questions

What languages does OCR support?

52 languages, selectable individually or in combination, including English, Hindi, Bengali, Gujarati, Kannada, Malayalam, Marathi, Punjabi, Tamil, Telugu and Urdu. Pick every language actually present in your document before running OCR; the wrong language model reads accented and non-Latin text poorly.

Is the output a searchable PDF or plain text?

Both, in separate tabs. The Searchable PDF embeds the processed page image (grayscale by default when Enhance image is on) with an invisible, selectable text layer added over it; the Extracted Text tab is the same recognized text with no layout, ready to copy or download as .txt.

How can I get better accuracy on a rough scan?

Keep Enhance image on — it applies grayscale, contrast, and upscaling before recognition — and match the Content type to your page: Dense paragraph for uniform body text, Sparse for forms and screenshots, Single line for a single printed line. A straight, well-lit, high-resolution scan matters more than any setting.

Does the tool support handwriting?

It isn't built for it. Tesseract.js recognizes printed text; handwritten or cursive content typically comes out garbled or missing regardless of settings.

Is there a maximum file size or page count?

Uploads are capped at 20 MB. There's no fixed page-count limit, but very long documents take proportionally longer since every page is rendered and recognized individually.

Does my scanned PDF get uploaded to a server?

No. Rendering the PDF, running Tesseract.js, and assembling the searchable output all happen in your browser tab. The only network requests are one-time downloads of the language model files, which are then cached for offline reuse.

What if the PDF is password-protected?

It's rejected up front with a message telling you to unlock it first using the PDF Unlock tool — this tool has no password field of its own, so an encrypted PDF's pages can't be read for OCR.

Step-by-step guides using this tool