Drop a scanned PDF here
or click to browse — OCR runs in your browser
OCR may take 30–60 seconds per page. The language model is loaded once on first use. Your file stays on your device throughout.
Initialising OCR engine…
Recognition runs in your browser — no upload
OCR failed
OCR complete — PDF is now searchable
- No uploads — fully on-device
- No account
- No watermarks
How to use PDF OCR
-
1
Upload your scanned PDF. Open the PDF OCR tool and drop your scanned PDF into the upload area, or click to browse. The file is read entirely in your browser — it never leaves your device.
-
2
Select the language. Choose English, Hindi (हिन्दी), or Gujarati (ગુજરાતી) depending on the language in your document. The language model is loaded once locally on first use.
-
3
Choose pages to OCR. Select "All pages" to process the entire document, or switch to "Page range" and type a range like 1-3 to OCR only specific pages.
-
4
Click Run OCR. Each page is rendered by PDF.js, pre-processed by the Rust engine (grayscale, binarise, deskew), and then recognised by the Tesseract WASM engine in your browser. A progress bar tracks each page.
-
5
Download the searchable PDF. Once complete, click "Download searchable PDF". The file looks identical to the original but now has an invisible text layer — text is selectable and searchable in any PDF reader.
-
6
OCR another PDF. Click "OCR another PDF" to reset the tool. The Tesseract engine stays loaded so subsequent runs start faster.
By Mohit Khatri · Last updated
Learn more about PDF OCR
Direct Answer: PDF OCR (optical character recognition) makes scanned, image-only PDFs searchable. A scan is just a picture of a page — your PDF reader sees pixels, not words, which is why Ctrl+F finds nothing and you cannot select a single sentence. This tool reads the pixels, recognizes the characters, and writes real text back into the PDF so the document finally behaves like one.
It runs inside ToolWeb's browser PDF editor, and unlike nearly every other OCR site, the recognition itself happens on your device: Tesseract compiled to WebAssembly does the reading, a Rust engine does the pre- and post-processing, and your scan never touches a server.
Direct Answer: The tell-tale symptom is a PDF where text selection does not work. Common sources: pages fed through an office scanner, documents photographed with a phone, old faxes, and book chapters digitized as images. All of them look like documents but act like photo albums.
OCR fixes the practical problems that follow. You can find a clause in a 60-page scanned contract instead of reading it end to end, copy an address or account number instead of retyping it, and make an archive of scanned invoices searchable by vendor name. If your PDF was born digital — exported from Word, for example — its text is already selectable and OCR is unnecessary; you may just want to extract the text directly.
Direct Answer: Each page passes through three stages, all in your browser:
- Rust pre-processing. The WebAssembly engine rasterizes the page and normalizes it — grayscale conversion, contrast normalization, and related cleanup — because Tesseract reads a clean, high-contrast image far more reliably than a dim photograph.
- Tesseract WASM recognition. The prepared raster goes to Tesseract's LSTM neural network, running as WebAssembly with the language model you selected. It outputs the recognized words with the exact position of each one on the page.
- Invisible text layer stamping. The Rust engine writes that text back into the PDF underneath the scan image, using a glyphless font that renders nothing visible. The page stays pixel-identical, but selection, search, and copy now work — in this editor and in every other PDF reader.
Direct Answer: Three languages are supported: English, Hindi (हिन्दी), and Gujarati (ગુજરાતી) — a combination that covers a huge volume of Indian government forms, academic records, and business paperwork that mixes Devanagari or Gujarati script with English. Each language uses its own trained LSTM model.
The models are lazy-loaded from this site itself, not a third-party CDN: nothing downloads until you actually start an OCR run, and once fetched, a model is cached by the browser so later runs start immediately and work offline. Picking the right language matters — running the English model over a Hindi scan produces gibberish, because the model can only output characters it was trained on. Other languages are not currently supported.
Direct Answer: OCR accuracy is mostly decided before the software ever runs — by the scan. On a clean, straight, 300 dpi scan of printed text, recognition is excellent and often near-perfect. Quality drops as the input degrades:
- Low resolution: below roughly 150 dpi, letterforms lose the detail the model needs and errors climb quickly.
- Skewed or curved pages: phone photos taken at an angle or book spines that bow the text line confuse line detection.
- Blur, shadows, and noise: pre-processing compensates for a lot, but it cannot recover detail that was never captured.
- Handwriting: not supported. The models are trained on printed text; cursive notes and handwritten forms will not recognize meaningfully.
Always spot-check the result: search for a few words you can see on the page, and skim any copied passage before relying on it.
Direct Answer: OCR is genuinely CPU-intensive — a neural network reads every page — so expect a few seconds per page on a modern laptop, longer on phones or for dense, large pages. The run is strictly page by page with a live progress bar, so you always know where it is, and long documents never lock the interface.
The cancel button works mid-run: stop a 200-page book after 20 pages and those 20 keep their text layer. The first run in a language includes a one-time model download; every run after that starts instantly from cache. If the finished file needs to be smaller for sharing, compress the PDF afterwards — the invisible text layer itself adds very little size.
Direct Answer: Think about what people OCR: signed contracts, passports and ID cards, medical records, bank statements, court filings. Typical online OCR services require uploading exactly these documents to someone else's server, where they may be queued, logged, retained, or used to train models — you cannot verify any of it.
Here, the document never leaves your device. The page images, the recognition, and the stamped output all live in your browser's memory. There is no upload, no server-side queue, no account, and nothing for a data breach to expose. Session recovery autosaves your working file (up to 80 MB) to your browser's own IndexedDB storage — local to your machine, not a cloud copy. For confidential material, this is the entire argument: the most private OCR is the one where the scan stays home.
Direct Answer: Small changes to your input produce outsized accuracy gains:
- Scan at 300 dpi. It is the sweet spot for Tesseract — sharper than typical phone photos, without the wasted processing time of 600 dpi.
- Keep pages straight. Use a scanner glass when you can; with a phone, shoot square-on in even light and avoid shadows across the text.
- Pick the matching language before you start — the model can only recognize the script it was trained on.
- Prefer originals over copies-of-copies. Every generation of photocopying or re-photographing adds noise the model must fight through.
- Converting phone photos first? Use JPG to PDF to turn document photos into a PDF, then OCR the result.
Direct Answer: The output PDF is a normal, portable document. Ctrl+F works in the editor's built-in full-text search and in Adobe Acrobat, macOS Preview, mobile PDF apps, and everywhere else, because the invisible layer is standard PDF text — no proprietary tricks. Select a passage and it copies as clean text, positioned to match the words you see on the scan.
From there, extract the recognized text via the PDF-to-text export to pull the whole document into a plain-text file for editing, quoting, or feeding into other tools. Since the file stays a regular PDF, you can also merge it with other documents, split out chapters, or annotate it in the editor before sharing.