How OCR runs in your browser
Each page is rendered at 300 dpi and read by Tesseract (tesseract.js, Apache-2.0), compiled to WebAssembly and served from this site. The language data, 8–10 MB per language, is downloaded from our own server the first time you run OCR, then kept for offline use.
Recognised words are written as invisible text exactly over the words in the image. The image itself is not changed, so the page looks identical; only search and selection change.
We do not publish an accuracy number: accuracy depends heavily on the scan, and we have not measured it on a corpus yet. Check important numbers by eye.
Steps
- Add the scanned PDF.
- Choose English, Spanish or both.
- Run OCR; each page shows its progress.
- Download the searchable PDF, or copy the text.
Limits, stated plainly
- English and Spanish only for now.
- Handwriting is not reliably recognised.
- Pages that already have text are skipped unless you choose otherwise.
Engine: tesseract.js (WebAssembly) in its own worker; pdf.js rendering; pdf-lib in a Web Worker. Your file is not uploaded; check it yourself.