Read text from scanned PDFs and photographed pages, powered by Tesseract.js, entirely in your browser
Click to upload a PDF file
PDF OCR renders each page of your PDF onto a canvas and runs real optical character recognition on it with Tesseract.js, entirely in your browser -- this is what lets it read scanned documents and photographed pages that have no underlying text layer at all, unlike our PDF Extract Text tool, which only reads a text layer that's already embedded in the file. Pick English or French before running. It works best on a straight, clean, high-contrast scan; a skewed, angled, or low-quality photo will produce visibly garbled text in places that needs proofreading -- OCR mistakes show up as recognizable garbage, not silently wrong words. The OCR engine and language data are downloaded once (browser-cached afterward) and your file is never uploaded to a server.
Does this actually perform OCR now?
Yes. Every page is rendered to a canvas and recognized as an image using Tesseract.js -- it no longer just reads an existing text layer, so scanned and photographed pages work.
Which languages are supported?
English and French for now. Pick one before running; only the selected language's data is downloaded.
How accurate is the text recognition?
It's real OCR, not a flawless one -- expect a meaningful error rate (roughly 4-16% of characters, depending on scan quality), especially on skewed, angled, or low-contrast images. Errors are visibly garbled, not silently wrong, so proofread the output before relying on it.
Why is the first run slower than later ones?
The first OCR run on a given language downloads the Tesseract engine and that language's training data. Your browser caches both, so later runs are faster.
Is there a file size limit?
There's no fixed limit -- it's bound by your browser's available memory, and multi-page PDFs will simply take longer since each page is recognized in turn.
Do you store my uploaded files?
No, everything happens locally in your browser. Your file is never uploaded to a server.