Make a PDF Searchable

Drop a scanned PDF. The original page images stay exactly where they are. Underneath them, we put down an invisible layer of OCR'd text. The file looks the same, but suddenly Cmd-F works, highlighting works, and copy-paste pulls out real words instead of nothing. Nothing leaves your computer.

Drop your scanned PDF here

or click to browse

Accepts: .pdf

What changes when you add a text layer

Suddenly the file behaves like a normal PDF. Cmd-F finds quotes. Spotlight and Windows Search return it when you forget what you named it. Screen readers can read it out loud instead of describing it as a 412-page image. Google can index it if it's on the web. And you can finally pull a paragraph out as a quote without retyping the whole thing.

What the tool does, step by step

pdf.js draws each page of your source PDF onto an off-screen canvas. Tesseract.js reads that canvas and returns the words it finds plus where on the page they sit. Then pdf-lib builds a fresh PDF the same dimensions as the original: it places the page as a JPEG, then writes every OCR'd word at its measured position with opacity zero. You can't see the text. The PDF reader can.

Every part of that happens in the tab you're in. The only network traffic is the one-time download of the libraries (about 14 MB) and they're cached afterwards.

What the file size will look like

Pages get re-encoded as JPEG at 80% quality. For a color archive scan, the output is often 20-40% smaller than the input. For a black-and-white scan that was already heavily compressed, the output might grow a few percent. The hidden text layer is around 1-3 KB per page, which is rounding error on the page images.

Which render scale to pick

Where this gets a bit fuzzy

Other options

If you don't care about keeping the original page images and just want the words out, Scanned PDF to Text is faster and produces a small .txt. If your source is a single image (a photo, a screenshot), Image to Text takes images directly without the PDF middle step.

A few things people ask

What if my PDF already has selectable text?

Then you don't need this tool. Running it anyway would replace the existing (good) text with OCR text, which is almost always a downgrade.

What about password-protected PDFs?

You'd have to remove the password first. The browser needs to be able to open the PDF for pdf.js to render it.

Can I run this on my phone?

Yes, but it's slow: 20-40 seconds per page on most phones. For anything over about 20 pages, do it on a laptop.

Cmd-F finds one word but not the next one. Why?

OCR misread it. If your input is a marginal scan, bump the render scale to 3x and it usually clears up.