OCR PDF
Run OCR on scanned PDFs and extract the text into a downloadable file. Recognition happens in your browser with tesseract.js. Your files never upload anywhere.
- The first run downloads roughly 15 to 30 MB of OCR engine and language data from a CDN, so you need internet for the first run.
- Processing is slow: roughly 10 to 30 seconds per page, depending on your device and the DPI setting.
- Best for clean scans of printed text. Handwriting, skewed pages, and faint text give poor results.
How to OCR a Scanned PDF
A scanned PDF is just pictures of pages, so you cannot search it, copy from it, or convert it to text with ordinary tools. Optical character recognition reads those page pictures and rebuilds the text. This tool does it entirely in your browser with the tesseract.js engine: pages are rendered as images with pdf.js, recognized one by one, and the results are combined into a single text file you can download.
Choose your scanned PDF. Optionally type a page range like 1-3, 5 to process only the pages you need, and pick a DPI and language.
Click Start OCR. On the first run the OCR engine and language data download from a CDN (roughly 15 to 30 MB), then each page is recognized in turn with live progress.
Read the combined text, proofread it, and download it as a .txt file or copy it into your editor.
Honest Expectations: Speed, Size, and Accuracy
Browser OCR is convenient but not magic. The engine download is the price of admission, and recognition runs at roughly 10 to 30 seconds per page on typical hardware, slower on phones and at 300 DPI. Accuracy on clean printed scans is excellent, but skewed pages, coffee-stain artifacts, tiny fonts, and handwriting degrade it fast. Think of the output as a strong first draft: always proofread before quoting numbers, names, or anything legally or financially sensitive.
Tips for the Cleanest Recognition
Choose the DPI to match your scan: 150 DPI is fine for crisp originals and runs fastest, 200 DPI is the balanced default, and 300 DPI helps with small or slightly blurry print at the cost of speed. Set the language to match the document, since the engine uses language models to disambiguate similar characters. If a page comes out garbled, try that page alone at 300 DPI; if it is still bad, the scan itself is likely too poor and a re-scan at higher resolution will help more than any setting. Processing a single test page first saves a lot of waiting on long documents.
What You Get
The result is plain text with each page labeled, in reading order. Formatting like bold, columns, and tables is not preserved; tables in particular come out as sequential text lines that need manual cleanup. That plain text is ideal as a starting point for editing, for making a scan searchable by pairing it with the original, or as input for translation and summarization tools. For a fully searchable PDF with the text hidden behind the page images, a desktop OCR program is still the better tool.
Frequently Asked Questions
Why does the first run download 15 to 30 MB?
The OCR engine, tesseract.js, and its language data are not bundled with this page; they load from a CDN the first time you click Start OCR. That download is roughly 15 to 30 MB, which is why the first run needs a decent internet connection and a moment of patience. After that, your browser caches the files, so later runs start immediately. Your PDF itself is never uploaded; only the engine code comes down, and all recognition happens locally on your device.
Why is OCR so slow?
Recognizing text is genuinely heavy computation: the engine analyzes every page image pixel by pixel, detects text lines, and classifies each character. Expect roughly 10 to 30 seconds per page depending on your device speed, the DPI you choose, and how dense the page is. A phone will be slower than a desktop. Higher DPI settings give better accuracy but take longer, so 200 DPI is a good balance for most scans. Let it run in the foreground; switching tabs can throttle the work.
How accurate is the OCR?
On clean scans it is very good, often above 95 percent character accuracy: straight pages, sharp print, and good contrast. Accuracy drops with skewed scans, faint text, handwriting, unusual fonts, watermarks behind the text, or very low resolution originals. The tool works best on printed documents like invoices, reports, and book pages. Always proofread the result before relying on it, especially for numbers, names, and legal or financial text where one wrong character matters.
Which languages are supported?
The language dropdown offers English, Spanish, French, German, and Portuguese, each with its own trained data file that downloads on first use. Pick the language that matches your document for the best accuracy, because the engine uses language models to resolve ambiguous characters. Mixed-language documents should use the dominant language. If your document is in a language not listed here, a desktop OCR program with broader language packs is the better choice.
Are my scanned documents uploaded anywhere?
No. The PDF is read into your browser memory and every page is rendered and recognized locally with tesseract.js. The only network traffic is the one-time download of the OCR engine and language data from the jsDelivr CDN, which contains no part of your document. This makes the tool suitable for private material like medical records, contracts, and personal archives. Note that you do need internet for that first engine download and whenever the cached files expire.
Can I OCR only some pages of a long PDF?
Yes. The page range field accepts values like 3, 1-5, or 2-4, 7, and page numbers start at 1. Leave it blank to process the whole document. This is useful for long scans where you only need a chapter, or for testing accuracy on one page before committing to a fifty-page run. The tool validates your range against the actual page count and warns you about out-of-range numbers before starting.