OCR PDF
Turn scanned pages into text you can search, select and copy.
or drop files anywhere on this page
Your files stay in this browser. Nothing is uploaded.
Language files are downloaded once (a few megabytes at most per language) and cached by your browser.
About OCR
OCR PDF reads the text inside a scan or a photographed page and lays it back on top, invisibly, so you can search, select and copy words that used to be locked inside a picture. The recognition runs in your browser tab, and your PDF is never sent to a server.
Reach for it when a PDF came from a scanner, a phone camera or an old fax and none of its text responds to a click. It recognizes what a page actually contains; it does not straighten, sharpen or otherwise repair a poor scan first.
How it works
- Add a PDF: a scan, a photo of a document saved as a PDF, or any file whose text is not yet selectable. OCR takes one file at a time.
- Choose whether to recognize every page (Recognize text on all pages) or just one (Quick single page mode). For a single page, enter the Page number and check the small preview.
- Pick the Language the document is written in. English is the default.
- Choose PDF (searchable), Text, or both as the Output. PDF (searchable) is ticked by default, and at least one output must stay ticked.
- Click Recognize text. The status line starts with "Loading language data", which is the download the first time you use a language, then counts through the pages. Download the result when it is ready.
What is downloaded, and when
OCR reaches the network while it works, which most tools here do not. The recognition engine, a WebAssembly build of Tesseract, is served from this site like the rest of the page. The language data is not. The first time you run a language, your browser fetches that language's file from jsDelivr, a public code delivery network, and keeps a copy so later runs skip the download. Each file is a few megabytes.
For Vietnamese and for languages written in Cyrillic, Greek, Arabic, Hebrew, Devanagari, Tamil, Telugu, Thai, Chinese, Japanese or Korean, building the searchable PDF also fetches a matching Noto font from Google Fonts, so the hidden text can be embedded. The Text output does not need it. None of these requests carries your PDF, since pages are drawn and recognized inside the tab.
What you get back
PDF (searchable) is your original file with the recognized words added as invisible text, placed word by word over the printed words beneath. The page image is not replaced, sharpened or re-compressed, so the page looks the same, and the file keeps its name. Text is a plain .txt file named after the PDF, with a form-feed character between pages. Tick both and the two files arrive as a ZIP.
Say a 12-page scanned lease called lease.pdf, in English. Leave the mode on Recognize text on all pages, tick Text next to PDF (searchable), and click Recognize text. The ZIP holds lease.pdf, now searchable, and lease.txt. In Quick single page mode only the chosen page is recognized: the PDF still holds every page, but only that one gains hidden text.
Each page is drawn at 200 dpi for recognition, whatever resolution the scan was saved at, so very small print on a low-resolution scan may not come through. OCR PDF does not check whether a page already has selectable text. Run it on one that does and it adds a second, invisible copy of the words.
Limits and what tends to go wrong
The tool sets no page limit or file size limit of its own. Pages are recognized one after another, so the time grows with the page count, and Cancel stops a run partway.
- Languages: the menu lists 82, English first and then A to Z from Afrikaans to Yiddish, and one run uses one language. Two of the 82, Kurdish and Tagalog, have no data file to download and fail if you pick them.
- Non-Western letters in the searchable layer: French, German, Spanish and other languages that fit Western European letters are fine. Letters outside that set, such as the Polish ł, Czech č or Turkish ş, are written into the hidden text as question marks, so searching the finished PDF for those words can fail even though the Text output is right. The same goes for languages with no matching font here, such as Bengali, Georgian and Khmer. Use the Text output for those.
- Passwords: type the password beside the file name if the PDF needs one to open; the searchable PDF is saved without it. A PDF that opens freely but restricts copying or printing stops with a password message when you ask for the searchable PDF, so run it through Unlock first or choose Text only.
When another tool fits better
If you want the words in an editable Word file, PDF to Word has a Run OCR first option that does the recognition for you, though a converted layout is never identical to the original. Run OCR before Compress, not after.
Frequently asked questions
It depends heavily on scan quality, skew and language. Printed text on a clean, well-lit scan recognizes well; messy or cursive handwriting is much less reliable and often needs correcting by hand afterwards, so check the result against the original for anything important.
The first time you use a language, your browser downloads that language's data file, a few megabytes from jsDelivr, and keeps it. Later runs with the same language start much faster.
It depends on your device and the number of pages more than anything else. Pages are recognized one after another, and the status line shows "Recognizing page N of M" as it goes. A long scan takes a while, and you can press Cancel at any point.
No. The recognized text is drawn invisibly on top of the existing page image, so the page looks exactly the same but becomes searchable and selectable.
Run OCR first. Compressing a scan beforehand can blur the text and make recognition less accurate.
Column and table layouts are one of OCR's harder cases: the engine does its best to follow reading order, but text from two columns can occasionally interleave in the plain Text output. The searchable PDF is less affected, since each recognized word keeps its own position on the page and a reader's find command still locates it.
Pick whichever language is dominant in the document; only one language is used per run. Words in a second language will often still be picked up but less accurately, since the engine is tuned to the language you selected.
For these and several other scripts, the searchable PDF is built with a matching Noto font fetched from Google Fonts, and the Text output never depends on it. If the font cannot be fetched, the hidden text falls back to a basic font that cannot draw those characters. Search the result for a word you know is there, and use the Text output if the layer looks wrong.
No. Each page is drawn and recognized inside your browser tab, and the PDF is never sent to a server. The only requests OCR makes are for the language data, and for a font when the language needs one.
OCR PDF takes PDF files only, so turn a photo into a PDF with JPG to PDF first. On a PDF that already has selectable text it is unnecessary, and running it anyway adds a second, invisible copy of the words. PDF to Text pulls the existing text out instead.
Related tools
This tool ran entirely in your browser and nothing was uploaded. Your Recent files list keeps a copy of local files under 5 MB until you clear it. How your files are handled.