PDF OCR (Scanned PDF → Text)

Got a scanned PDF where the words are just pixels? Run OCR on it here. You can either get a plain .txt of the recognized text, or a searchable PDF that looks the same as the original but lets you select and copy. English only.

Drop your scanned PDF here

or click to browse

Accepts: .pdf

What's running here

Two libraries do the heavy lifting. pdf.js (Firefox's PDF engine) renders each page of your PDF to a canvas. Tesseract.js (a WebAssembly build of Google's open-source Tesseract OCR) reads the text off that canvas. Both run in your browser. The PDF doesn't go anywhere.

Which output to pick

How long this takes

OCR is slow. On a recent laptop, plan for 3 to 10 seconds per page. On a phone, more like 20 to 40 seconds per page. A 50-page book is a coffee break either way. The first run also pulls down the OCR engine (about 10 MB) and the English language data (about 4 MB), but those get cached, so the second run skips the download.

Getting decent accuracy

Nothing leaves your browser

The PDF stays local. After the page loads, the only network requests are for the OCR engine and language data, both fetched once and cached. Open DevTools, switch to the Network tab, and watch for yourself before you run a conversion.

A short history of OCR

Optical character recognition isn't new. Gustav Tauschek patented a primitive reading machine in 1929. Ray Kurzweil built the first general-purpose omnifont system in the 1970s, originally to read books to blind users. Google open-sourced Tesseract in 2005 after taking it over from HP Labs, and the LSTM-based engine that powers Tesseract 4 and 5 — the version running on this page — was added around 2018. Today's open-source OCR is good enough for clean printed text in any of 100+ languages. It still struggles with handwriting, heavy ornamental fonts, and anything below about 150 DPI.

Tips for cleaner output

Frequently asked questions

Does my PDF get uploaded for OCR?

No. Both pdf.js and Tesseract.js run as WebAssembly inside your browser tab. The only network traffic is the initial download of the OCR model files, which happens once and is cached.

How accurate is it on a clean scan?

For high-quality scans of standard typography, expect 95-99% character accuracy. Numbers and special symbols are slightly worse. Bad scans drop to 80% or below.

Does it support languages other than English?

The default model is English-only because adding more languages roughly doubles the download and memory cost per language. Contact us if you need a specific language and we'll consider adding a variant page.

Can it read handwriting?

No. Tesseract is for printed text. Handwriting requires a different class of model and is genuinely hard. For handwritten notes, look at commercial tools like Google Lens or Microsoft OneNote.

What's the difference between this and Make PDF Searchable?

This page can do either. "Make PDF Searchable" is a dedicated variant focused on the hidden-text-layer output specifically.

Are there file size limits?

Memory is the limit, not policy. Several-hundred-page PDFs at 300 DPI work on a laptop. On a phone, expect the tab to crash above 100-150 pages.

Related converters