OCR PDF
Extract text from scanned PDFs and image-based documents using Tesseract.js. Produces searchable text output.
OCR PDF
Extract text from scanned PDFs using client-side OCR. Preview pages, run recognition, and download the extracted text.
Drop a PDF file here
or click to browse
Extract Text From Scanned PDFs Without Uploading
You have a 40-page scanned lease agreement and need to search for a specific clause. The PDF is just images -- no text layer, no search, no copy-paste. Drop it into the OCR tool, select English, and click Run OCR. Each page is processed individually, and the extracted text appears per-page with a full-document view at the end. The entire output is downloadable as a plain text file.
The tool supports 11 languages including English, French, German, Spanish, Italian, Portuguese, Dutch, Japanese, Chinese Simplified and Traditional, and Korean. Select the correct language before running OCR -- Tesseract.js uses language-specific training data to recognise characters, ligatures, and common word patterns. A 10-page English document typically takes 30-60 seconds depending on your device.
Who benefits from browser-based OCR
A 60-page court filing scanned at 300 DPI needs to be searched for a specific witness name. Running OCR extracts all text, making the document searchable with Ctrl+F. The per-page output lets you locate the exact page where the name appears.
A stack of 30 scanned receipts needs vendor names, dates, and amounts extracted for a spreadsheet. The OCR tool processes each receipt as a separate page, outputting plain text that can be parsed with simple string operations or imported into accounting software.
A 100-page historical manuscript scanned from a library archive needs text extracted for analysis. The tool processes the document page by page, preserving the reading order. The downloadable .txt format integrates with text analysis tools like AntConc or Voyant Tools.
Related tools
How Tesseract.js Reads Text From Scanned Pages
When you drop a scanned PDF, PDF.js renders each page onto a Canvas element at 2x scale (approximately 144 DPI). This scaled image is passed to Tesseract.js, which runs the Tesseract OCR engine -- originally developed by Google -- compiled to WebAssembly. The engine processes each page through three stages: image pre-processing, character segmentation, and character recognition.
Why 2x scale improves recognition accuracy
OCR accuracy depends on pixel density. A page rendered at 1x scale (72 DPI) provides roughly 5,000 pixels per square inch. At 2x scale (144 DPI), that doubles to approximately 20,000 pixels per square inch. The additional pixel data helps Tesseract distinguish similar characters -- for example, the letter O versus the number 0, or a lowercase l versus the number 1. Clean, high-resolution scans (300 DPI or higher in the original) combined with 2x rendering typically achieve 95%+ accuracy for English text.
The language selector matters because Tesseract downloads language-specific training data on first use. English training data recognises Latin characters and common English word patterns. French training data adds recognition for accented characters like e-acute and c-cedilla. Japanese training data handles kanji, hiragana, and katakana. Selecting the wrong language degrades accuracy because the engine tries to match characters against the wrong pattern set.
What the OCR output looks like
Each page produces a block of plain text. The tool concatenates all pages with page break markers and displays the full document in a scrollable text area. You can copy the text directly from the UI or download it as a .txt file. The output is raw character sequence -- formatting like bold, italic, column layouts, and font sizes are not preserved. For multi-column documents, text may flow across column boundaries because the OCR reads left-to-right across the full page width.
A 10-page English document typically takes 30-60 seconds to process. A 50-page document may take 3-5 minutes. The progress bar shows the current page and overall percentage. Each page is processed sequentially to manage memory usage -- the engine does not load all pages simultaneously.
Frequently Asked Questions
Is my file uploaded for OCR?
No. Tesseract.js runs entirely in your browser. Your PDF never leaves your device -- there is no server upload. The OCR engine is downloaded once from a CDN and cached locally, so subsequent runs are faster because the language data is already stored on your machine.
How accurate is the OCR?
Accuracy depends on scan quality, resolution, and language. Clean, high-resolution scans (300 DPI or higher) in English typically achieve 95%+ accuracy. Handwritten text, low-resolution scans, or documents with complex layouts may have lower accuracy. The tool renders pages at 2x scale to maximise the pixel data available to the recognition engine.
What languages are supported?
The tool supports 11 languages: English, French, German, Spanish, Italian, Portuguese, Dutch, Japanese, Chinese (Simplified and Traditional), and Korean. Each language requires its own training data, which is downloaded from a CDN on first use and cached in the browser for subsequent runs.
Does OCR create a searchable PDF?
This tool extracts text as plain text (.txt format). It does not create searchable PDFs with text overlay. To create a searchable PDF, you would need to position the extracted text over the original images at the correct coordinates, which requires additional processing.
How long does OCR take?
A typical 10-page English document takes 30-60 seconds. A 50-page document may take 3-5 minutes. Processing time depends on page complexity, scan resolution, and your device. The progress bar shows the current page and overall percentage. Each page is processed sequentially to manage memory.
Can I OCR password-protected PDFs?
PDFs with an owner password (restricting editing) can be processed because they open without a password. PDFs with a user password (requiring a password to open) cannot be processed because PDF.js cannot render the pages for OCR without first decrypting the document.
What text formatting is preserved?
The OCR output is plain text -- bold, italic, font sizes, column layouts, and tables are not preserved. The tool extracts the raw character sequence from each page. For multi-column documents, text may flow across column boundaries. Use the per-page results to manually reorder text if needed.
How is this different from Adobe Acrobat OCR?
Adobe Acrobat creates a searchable PDF with a hidden text layer positioned over the original images. This tool extracts raw text only. Acrobat requires a subscription; this tool is free. For quick text extraction from a handful of documents, this tool is faster. For creating searchable PDFs that retain the original layout, Acrobat is the better choice.