PDF OCR β€” Extract Text from Scanned PDF

Use OCR to recognize and extract text from scanned PDF documents in your browser.

Drop files here or click to upload

Max 100 MB

OCR (Optical Character Recognition) turns images of text inside a PDF into actual selectable, searchable text. Scanned documents, camera photos of receipts, and image-heavy legacy PDFs all benefit β€” after OCR, you can copy text, search within the file, and pass it through other tools like PDF-to-Word. The hardest part of OCR is the language coverage: recognizing English is very different from recognizing Chinese, Japanese, or Arabic script. This tool supports over 100 languages via Tesseract.js, though larger language packs (like CJK) download additional model data the first time they are used. OCR runs entirely in your browser. The Tesseract WASM engine processes each page, adds a text layer to the PDF while keeping the original image visible, and delivers a searchable output. Nothing leaves your device.

Last reviewed: July 2026

What is this?

OCR happens in three stages. First, image preprocessing normalizes the page β€” binarization converts color to black and white, deskewing corrects tilted scans, and noise removal cleans up specks. Second, layout analysis segments the page into text regions and non-text regions (images, lines, tables), then within text regions identifies individual lines and words. Third, character recognition uses an LSTM (Long Short-Term Memory) neural network to convert word images into character sequences. Modern OCR is remarkably accurate on clean, high-DPI scans of printed text β€” often above 99% for English. Handwriting, low-resolution images, and complex layouts drop accuracy significantly.

How to use this tool

  1. 1Choose a PDF containing scanned or image-based pages. If your PDF already has selectable text, OCR is not needed β€” use the Extract Text tool instead to skip processing time.
  2. 2Select the language(s) in the PDF. Choose only the languages actually present β€” running OCR with unused languages slows processing without improving accuracy. For mixed-language documents, select the primary language.
  3. 3Click Process. The tool loads the language model (first run may take 10-30 seconds to download the ~10MB model), then processes each page. Expect 2-5 seconds per page on typical scans.
  4. 4Download the OCRed PDF. The output looks identical to the input, but you can now select, copy, and search text throughout. Try Ctrl+F to verify text is recognized correctly.

Tips & best practices

  • OCR accuracy depends heavily on scan quality. 300 DPI scans of printed text produce 98-99% accuracy. 150 DPI drops to 85-90%. Camera photos vary widely β€” 90-95% for good lighting, 70-80% for poor.
  • The first run downloads the Tesseract WASM engine (~15MB) plus language models (5-15MB each). Once downloaded, models are cached β€” subsequent runs are much faster.
  • For CJK languages (Chinese, Japanese, Korean), the language pack is significantly larger (~15-25MB per language). The first run takes longer than for Latin-script languages.
  • Handwriting recognition is not what this tool is optimized for. Tesseract handles printed text well but struggles with cursive script. Accuracy drops to 30-60% on handwriting.
  • OCR adds a hidden text layer under the visible image. If the output PDF looks unchanged, that is expected β€” try selecting text to confirm OCR worked.

Common use cases

  • A librarian digitizing a shelf of old printed reports into a searchable archive without retyping the content.
  • A lawyer OCRing scanned court filings so they can search the full text for specific case references.
  • A researcher processing old journal PDFs (image-only scans) to extract quotations for a literature review.
  • A finance team OCRing scanned invoices before archiving them in a searchable folder for future audits.
  • A translator preparing scanned documents by first OCRing them, then feeding the extracted text into translation software.
  • A journalist working through leaked document PDFs (often scanned images) to search for key names and dates across hundreds of pages.

Technical notes

  • The tool uses Tesseract.js 7.x (WebAssembly build) running inside a Web Worker so OCR does not freeze the browser tab.
  • Language models are downloaded on first use and cached in the browser. Latin-script languages are ~5-8MB; CJK languages are ~15-25MB each.
  • OCR processing speed is 2-5 seconds per page on typical printed scans at 300 DPI, running on modern desktop CPUs.
  • The output PDF is created with a hidden text layer overlaid on the original page images. Text is invisible visually but selectable and searchable.
  • The tool supports over 100 languages, including English, French, German, Spanish, Chinese (Simplified and Traditional), Japanese, Korean, Arabic, Hebrew, and Russian.
  • Multi-language pages are supported: select multiple languages, and Tesseract runs recognition passes for each. Accuracy on truly mixed-language pages is lower than single-language pages.

Private by design

This tool runs in your browser. Your file is not uploaded to our server while using the tool.

Limitations

  • Handwriting is not recognized well. Tesseract is optimized for printed text; expect 30-60% accuracy on handwriting, versus 98%+ on clean printed English.
  • Very low DPI scans (below 150 DPI) produce poor OCR results. Rescan at 300 DPI for archival-quality accuracy.
  • Complex layouts (multi-column text, tables with heavy formatting, sidebars) may result in text extracted in unexpected reading order.
  • The first-run download (~15MB engine + language model) can be slow on limited connections. Once downloaded, models cache in the browser.
  • Password-protected PDFs cannot be processed. Remove the password with the Protect tool first.
  • Very large PDFs (200+ pages) may exhaust browser memory during processing. Split into batches of 50 pages if you run into issues.

Frequently Asked Questions

What is OCR?

OCR (Optical Character Recognition) converts images of text into actual selectable text. Scanned PDFs and camera photos contain pixels, not characters β€” OCR looks at those pixels and infers what letters they represent, then adds a text layer to make the content searchable.

Which languages are supported?

Over 100 languages via Tesseract.js. Common ones include English, French, German, Spanish, Chinese (Simplified/Traditional), Japanese, Korean, Arabic, Hebrew, and Russian. Select the language(s) in your document from the dropdown before processing.

Why is the first OCR run so slow?

The Tesseract engine (~15MB) and language model (~5-25MB depending on language) download on first use. These are cached in the browser, so subsequent runs skip the download and start immediately.

How accurate is the OCR?

For clean printed text at 300 DPI: 98-99% for English, 95-97% for other Latin-script languages, 90-95% for CJK languages. Camera photos and low-resolution scans drop accuracy 5-15 percentage points depending on quality.

Can it recognize handwriting?

Poorly. Tesseract is optimized for printed text. Handwriting recognition ranges from 30% (cursive script) to 60% (neat block letters). For handwriting-heavy documents, this is not the right tool.

What happens to the original images in the PDF?

They stay visible. OCR adds a hidden text layer underneath, so the PDF looks identical but is now searchable. You can copy text, use Ctrl+F to find words, and pass the OCRed PDF through other tools like PDF-to-Word.

Can I OCR just some pages?

Yes. Use the page range field to select specific pages (like '1-10' or '5, 8, 12'). Only those pages will be processed, saving time on large documents where most pages already have text.

Does OCR work on documents in multiple languages?

Yes. Select all languages present in the document. Tesseract runs recognition for each. Accuracy on mixed-language pages is lower than single-language pages, but usually still usable.

Is my PDF uploaded to a server for OCR?

No. Everything runs in your browser using Tesseract.js (WebAssembly). Even the language models are downloaded once and stored locally. No cloud dependency, no uploads.

Other PDF Tools