basetools
PDF

Recognize text in an image or scanned PDF (OCR)

Recognizes the text in an image or a scanned PDF, page by page, in English or Portuguese, with progress and the option to cancel — the result comes out as plain text and also in the same structure used to generate a .docx or .xlsx directly, with no need for a PDF that already has real text.

Drag one or more images/PDFs here, or click to choose

Image (JPG, PNG, WebP) or PDF, up to 50 MB each

The first time you use this tool in this browser (or when you switch language), about 5.2 MB are downloaded — the recognition engine (~3.8 MB, shared by any language) and the data for the language you picked (~ MB, just Portuguese). It's cached in your browser for future use.

Want more control over converting the recognized text? Use PDF to Word or PDF to Excel — the buttons above already apply the same conversion directly to the text recognized here, without generating an intermediate PDF.

Local processing: your file never leaves your computer.

  • Does:Recognizes the text in an image or a scanned PDF, page by page, in English or Portuguese, with progress and the option to cancel — the result comes out as plain text and also in the same structure used to generate a .docx or .xlsx directly, with no need for a PDF that already has real text.
  • Processes:Your PDF is processed entirely in your browser — nothing is uploaded to a server.
  • First use:Downloads a large file (a model or engine) from the site’s own server the first time you use it — the file you process still never leaves your browser. See "How it works" on the home page.

When text isn't actually text

A PDF generated straight from a word processor stores every letter as real text, ready to copy or extract directly. A scanned PDF — a paper document run through a scanner — or a photo of a document doesn't have that layer: all that exists is an image, and what looks like text is, to a computer, just a set of pixels like any other part of the picture. OCR (optical character recognition) is the process of figuring out, from those pixels, which letters and words are probably there — that's what this tool does, using the open-source Tesseract engine, running entirely in your browser.

Why your browser downloads a large file the first time

The recognition engine and the trained dataset for each language are large files — the engine alone is over 3 MB, and each language's data adds a few more megabytes, specific to that one language. Loading all of that along with the page would make every tool on this site slow for everyone, even people who never use OCR. That's why the download only happens when the tool is actually used, with the real size shown before it starts — and only for the language you picked, never all of them at once.

How per-page progress works

A multi-page scanned PDF is processed one page at a time: each page becomes an image internally (the same technology this site uses to generate PDF thumbnails), goes through recognition, and only then does the next page start. The progress indicator shows which page is currently being processed — useful for gauging how much is left in a long document, and for deciding whether it's worth cancelling if the first few pages already look bad enough that continuing isn't worthwhile.

What makes for a good result

OCR accuracy depends directly on the quality of the input image: good resolution, good contrast between text and background, with no tilt or blur, produce a far more reliable result than a photo taken at an angle, in low light, or a low-quality scan. Handwritten text, in particular, isn't reliably recognized by this engine — it was trained on printed or typed text, with letterforms far more regular than anyone's handwriting.

The same structure, for the same conversions

The recognized text doesn't just come out as loose text — it comes out organized in the same structure used by this site's PDF to Word and PDF to Excel tools: paragraphs, an estimated heading hierarchy, and column alignment that could be a table. Because of that, one button generates the .docx and another detects a table and generates the .xlsx directly from the OCR result, without needing to first assemble an intermediate PDF with that text just to convert it again.

Why only English and Portuguese in this first version

Each language needs its own trained dataset — it's not a configuration option, it's an entire file per language, specific to how that language is written. Offering many languages at once would mean maintaining, hosting, and validating dozens of those files. English and Portuguese cover most of this site's expected use in this first version — more languages can be added later without changing how the tool works for people already using it.

Processing several files at once

You can upload more than one image or PDF at a time — each file is processed in the queue, one at a time, using the same language chosen for all of them. Progress shows both the current file in the queue and the current page within it (when it's a multi-page PDF), and cancelling stops things before the next file or the next page starts — whatever's already been recognized up to that point isn't lost.

What this tool doesn't do

It doesn't guarantee perfect accuracy — the result depends on the quality of the input image, and should always be checked before any use where exactness matters. It doesn't reliably recognize handwritten text. It doesn't detect the language automatically — the language has to be chosen before you start, and picking the wrong one hurts accuracy significantly. And it doesn't process any file on any server: all recognition happens in your browser, with the language data downloaded from the site's own storage bucket, never sent to a third party.

Frequently asked questions

What's the difference between this tool and PDF to clean text or PDF to Word?

This site's other PDF tools read text that already exists as real text inside the file — fast and accurate, but it doesn't work when the PDF is a scanned image (with no actual text behind it). This tool does optical character recognition (OCR): it identifies letters from the image itself, which works for both a scanned PDF and an ordinary photo or screenshot — but its accuracy depends on image quality, unlike reading real text directly.

Why does the tool download a large file the first time I use it?

The recognition engine and the data for the language you picked are files too large to load along with the page — so they're only downloaded when you actually use the tool, once per browser (they're cached afterward). The notice before starting shows the real size of that download, no surprises.

Why only English and Portuguese in this first version?

Each language needs its own trained data file, so offering many languages at once would mean maintaining and validating dozens of large files. English and Portuguese cover most of the expected use of this site — more languages can be added later without changing how this tool works.

Does recognition work well with any image?

No — accuracy depends directly on image quality: good resolution, good contrast between text and background, with no tilt or blur, give a much more reliable result. Handwritten text isn't reliably recognized by this engine, which is built for printed or typed text. The result should always be checked, never used without review in a context where accuracy matters.

Can I generate a .docx or .xlsx directly from the recognized text?

Yes — after recognition, dedicated buttons generate a .docx (reconstructing paragraphs and headings, like in PDF to Word) or detect a table and generate an .xlsx (like in PDF to Excel), using the same structure and conversion tools as the rest of the site, with no need to generate an intermediate PDF first.

Related tools