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 downloads a language file before it can work, 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, and so are the seven most-used languages: English, French, German, Spanish, Italian, Portuguese and Dutch. Run one of those and nothing leaves this domain. Any other language is fetched once from jsDelivr, a public code delivery network, and kept for later runs. Each file is a few megabytes.
Nothing else leaves for a third party. The font the hidden text is written in is served from this site and fetched only when a word needs it, so the language file is the one outside request OCR makes. It does not carry 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. Every one of them has a data file to download.
- Scripts in the searchable layer: Western European, Central European and Turkish letters such as ł, č, ő and ş, along with Greek and the Cyrillic of Russian, Ukrainian, Bulgarian and Serbian, are written into the hidden text as themselves, so those words are searchable in the finished PDF. Chinese, Japanese, Korean, Arabic, Hebrew, Thai and Vietnamese are written into the layer too, from a font this site serves only when the scan needs it: about 2 MB for a Chinese, Japanese or Korean one and under a megabyte for the others. Scripts with no font here, such as Hindi, Bengali, Georgian, Armenian, Khmer and the extra letters of Kazakh and similar Cyrillic languages, are left out of the layer rather than written wrongly, and so is a word with a character outside the common set of its font. The result screen says how many words that came to, and the Text output still has them in full.
- 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 needs no password, and the searchable PDF comes back without those restrictions.
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, and keeps it. Later runs with the same language start much faster. English and the other six languages this site carries come from this domain; the rest come from jsDelivr.
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.
Recognition works as usual and the Text output has every word, but the searchable layer does not: no font on this site can draw those scripts, so their words are left out of that layer rather than written as something else. Tick Text as well when you OCR a document in one of them.
No. Each page is drawn and recognized inside your browser tab, and the PDF is never sent to a server. The only request OCR makes to anyone but this site is for the language data.
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.