OCR PDF online — make scanned text searchable
Turn a scanned PDF into a real, searchable document. Text becomes selectable and Ctrl+F works — all processed locally in your browser, nothing uploaded.
How to OCR a PDF online
Running OCR with PDFluna takes one click and happens entirely in your browser. There is nothing to install, no account to create, and no files are sent to a remote server. Here is the full process, step by step:
- Upload your scanned PDF. Drag and drop a scanned PDF onto the upload area, or click Choose file. Files up to 50 MB and 50 pages are supported.
- PDFluna checks each page. We scan the file locally to find pages that already have a searchable text layer versus pages that are just images. Only the image-only pages need OCR.
- Run OCR in your browser. Click Start OCR. The tool downloads the Tesseract OCR engine (about 14 MB, cached after the first run) and recognises text page by page.
- Download your searchable PDF. The output looks identical to the original but text is now selectable, copyable and searchable with Ctrl+F. Your original file is never modified.
What is OCR, and why does it matter?
When you scan a paper document or photograph a contract with your phone, the resulting PDF is not a document in the usual sense — it is a stack of pictures wrapped in a PDF container. There is no real text inside: if you try to drag-select a word, nothing highlights; if you search for a word with Ctrl+F, nothing is found; if you copy a block, you get nothing back. OCR (Optical Character Recognition) fixes that by looking at each page, identifying the shapes of letters, and writing the recognised text back into the file as an invisible layer behind the image.
The visible page stays exactly the same — same scan, same quality, same layout. But now the PDF is searchable, copyable and accessible to screen readers. That is the PDF format most people actually want to email, archive or upload to a portal.
How PDFluna runs OCR in your browser
Under the hood, PDFluna uses Tesseract.js, a WebAssembly build of the open-source Tesseract engine maintained by Google. The engine and its English recognition model are downloaded from a CDN the first time you use the tool (about 14 MB total) and then cached in your browser, so every subsequent run starts in seconds. The actual processing never touches a server:
- Prescan. We open the PDF with PDF.js and inspect each page to see whether it already has a real text layer. Pages that do are left alone; there is no benefit to re-OCR-ing them.
- Rasterise. Every page that needs OCR is rendered onto an
OffscreenCanvasat 300 DPI — the resolution Tesseract is trained on. Too low and small text is lost; too high and processing slows down with no accuracy gain. - Recognise. Tesseract identifies each word, returning its text, confidence and bounding box in pixel coordinates.
- Overlay. We use pdf-lib to add an invisible text layer over each page, with each word positioned exactly where it appears in the image. The original page content is preserved byte-for-byte.
Is it safe to OCR a PDF online?
With PDFluna, yes — because nothing is actually "online" about the recognition step. Once the page has loaded in your browser, the PDF is read into memory using the standard File API and processed with JavaScript and WebAssembly on your own machine. We never upload it, never see it and never store it. That makes PDFluna a safe choice for confidential scans like tax returns, contracts, or medical records. If you want to double-check, open browser DevTools and watch the Network panel — no requests are made during OCR itself (only the one-time engine download, which loads no user data).
Tips for better OCR accuracy
- Scan at 300 DPI. Below 200 DPI, small characters blur together and accuracy drops sharply. 300 DPI is the sweet spot for speed and precision.
- Keep pages straight. Lightly skewed scans (a few degrees off) are fine; heavily rotated or warped pages are not. Rotate the PDF first if needed.
- Use even lighting. Phone photos of documents with heavy shadows or glare can confuse the engine. Flat, evenly-lit scans work best.
- Black text on white is ideal. Coloured backgrounds and decorative fonts reduce accuracy. Standard body fonts (Times, Helvetica, Arial) are easiest for OCR.
Frequently asked questions
What is OCR and when do I need it?
OCR stands for Optical Character Recognition — it turns the pixels in a scanned document into real text. If you can’t select text in your PDF by dragging over it, and Ctrl+F returns no results, the file is a scanned image and needs OCR before you can search or copy from it.
Is my file uploaded to your servers?
No. OCR runs entirely in your browser using Tesseract.js (a WebAssembly build of the open-source Tesseract engine). Your PDF never leaves your device. You can verify this yourself by opening DevTools → Network tab while the tool runs — no file uploads are made, only a one-time download of the recognition engine itself.
Which languages does it support?
The current version recognises English (including numbers, punctuation and most common symbols). We picked English only for the first release because each added language roughly doubles the download size of the OCR model. Multi-language support is on the roadmap.
What is the maximum file size?
The tool accepts PDFs up to 50 MB and up to 50 pages. OCR is memory- and CPU-intensive, and these limits keep the experience smooth on mid-range laptops and phones. For larger scans, split the document first with our free Split PDF tool and OCR each part.
How accurate is it?
On clean 300 DPI scans with standard fonts, accuracy is typically 95–99%. Results drop on low-resolution scans (below 200 DPI), handwriting (Tesseract is not designed for cursive), heavily skewed pages, or very unusual fonts. If the scan quality is poor, rescan at a higher DPI and try again.
Can I still read and print the PDF normally?
Yes — the output looks exactly like the original. We add the recognised text as an invisible layer sitting behind the image, so the page renders identically but text becomes selectable with the mouse and searchable via Ctrl+F. Nothing about the visible document changes.
What happens to pages that already have text?
Pages with an existing text layer are left untouched by default — no point re-OCR-ing them. If your PDF is a mix of scanned and typed pages, we only process the scanned ones. You can override this with a toggle if you want to force OCR on the whole file.
Why does the first run take longer?
The first time you use OCR PDF, your browser downloads the Tesseract engine (about 2 MB of WebAssembly) and the English recognition model (about 12 MB). These get cached in your browser, so the second and later runs start in seconds.