OCR PDF: make a scanned PDF searchable

A scanned PDF is a stack of pictures: you can't search it, select it or copy from it. This tool reads every page with OCR and gives you back the same PDF with an invisible text layer, plus the text as a .txt file. Free, no signup, and the PDF never leaves your browser.

No PDF yet. You can also drop a file on this box.

What you get

OutputWhat it is
Searchable PDFYour original pages, untouched, with the recognised words laid invisibly on top.
Ctrl+F, text selection, copy and desktop search all work. The file grows by only a few KB per page.
.txt fileThe text of every page, with a "--- Page N ---" line before each one.
Handy for pasting into a document, a spreadsheet or a translator.

Pages that already have real text (a mixed PDF with a few scanned pages, say) are kept as they are by default: their text is copied exactly instead of being guessed by OCR. Choose "OCR them too" if that text is garbled.

How it works

Each page is drawn at about 200 dpi with pdf.js (the PDF viewer built into Firefox) and read by Tesseract, the open-source OCR engine, compiled to WebAssembly. Tesseract also returns where each word sits on the page, which is how the invisible layer lines up with the printed words. Everything runs on your device: the first run downloads the engine and the language model (about 3 to 6 MB, then cached). Expect a few seconds per page on a laptop, longer on a phone.

Getting better results

ProblemWhat helps
Accents read wrong (é, ü, ñ)Pick the document's language: each one has its own model.
English, French, German, Spanish, Italian and Portuguese are available.
Sideways pagesTurn them upright first with rotate PDF, then run OCR.
Tesseract reads upright text only.
Faint or blurry scansRescan at 300 dpi in black and white or grayscale if you can.
Phone photos of pages work, but straight-on and well lit.
Password-protected PDFRemove the password first with unlock PDF.
You need to know the password.

Making PDFs from web pages? Skip OCR entirely

If your scans are really printouts of web pages, invoices or reports your own app generates, OCR is the slow way round. A PDF printed by a browser keeps every word as real text from the start: exact, searchable, and with working links. The Shotmint API prints any URL or HTML in Chromium:

curl "https://shotmint.creasework.com/v1/pdf?url=https://example.com&format=A4" -H "X-API-Key: YOUR_KEY" -o page.pdf

Each render is 1 credit. €5 buys 2,000 with no subscription, and credits never expire. Try it without a key on URL to PDF or HTML to PDF.

Get 25 free renders a month API docs

FAQ

Is my PDF uploaded? No. pdf.js, Tesseract and pdf-lib all run as JavaScript and WebAssembly on this page, so contracts, statements and medical letters stay on your device. Only the engine files are downloaded, from this site.

Will the PDF look different? No. The original pages are kept byte for byte and the text layer is invisible. Only its size grows a little.

How do I know a PDF needs OCR? Try to select a word or press Ctrl+F. If nothing highlights, the page is an image. PDF to text also tells you which pages have no text layer.

Is it free? Is there a limit? Free, with no signup and no page limit. Long documents just take longer; you can stop at any time and keep the pages done so far.

Related: image to text (OCR), PDF to text, PDF to JPG, compress PDF, merge PDF, rotate PDF, redact PDF.

Related tools

Unlock PDF · Protect PDF · PDF to text · Flatten PDF · PDF to Markdown · Fill PDF form · PDF to Word · Sign PDF · PDF to HTML · Add text to PDF · PDF to Excel · Watermark PDF · Compare PDFs (text diff) · Add page numbers to PDF · Extract images from PDF · Redact PDF · Grayscale PDF · Resize PDF · BMP to PDF · GIF to PDF · HEIC to PDF · Webpage to PDF · XLSX to PDF Converter · all free tools