OCR PDF

Add a searchable text layer to scanned PDFs. English and Hindi supported. Runs entirely in your browser.

🔒 Processed locally in your browser. Language pack (~10 MB) is fetched once from CDN.

Drop a scanned PDF here or click to select

How to OCR a PDF

  1. Drop your scanned PDF into the box above.
  2. Choose language (English, Hindi, or both).
  3. Choose a render DPI — higher is more accurate but slower.
  4. Click Make searchable PDF (or Download text for plain text).
  5. Wait while the OCR runs. First run also downloads the language pack (~10 MB).
  6. Save the searchable PDF or text file when done.

Technical limitations — read this

  • Handwriting will not be recognised well. Tesseract is trained on printed text. Cursive and stylised handwriting produce garbage.
  • Low-resolution scans give poor results. Under 150 DPI, characters blur and OCR errors increase sharply. If possible, rescan at 300 DPI before running OCR.
  • Complex layouts confuse OCR. Multi-column documents, tables, and heavily styled text are read in the wrong order.
  • Searchable PDF text is invisible. We render the original page as an image and place an invisible text layer over it. Visually identical to the input; only search/copy is added.
  • Hindi + English together is slower and less accurate than either language alone — Tesseract has to guess between scripts.
  • Not for legal/compliance digitisation. Always review OCR output manually before relying on it.

Frequently asked

How accurate is it?

Good for clean printed text at 300 DPI (~95%+ character accuracy). Poor for handwriting or low-res scans.

Is my file uploaded?

No. OCR runs entirely in-browser via WebAssembly. Only the language model (~10 MB) downloads from a CDN.

Can I search the output?

Yes — the PDF will contain an invisible text layer that standard PDF readers can search. Visually it looks identical to the input.

How long does it take?

Roughly 5-20 seconds per page on a modern laptop at 200 DPI. Older devices and higher DPI take longer.

Related tools

Related reading