Image to text with OCR, right in your browser
This image to text converter reads the words in a picture and gives them back as editable text. It uses optical character recognition (OCR): the Tesseract engine, compiled to WebAssembly, runs in a background worker inside your browser. Drop a photo of a document, a screenshot, a scanned letter or a whole scanned PDF, and you get the text page by page, with a confidence score for each page.
What happens to your files
Your images and PDFs are processed on your device and never uploaded. Two things are downloaded once from a public CDN: the OCR engine (about 1.3 MB) and the data for each language you use (English is 2.8 MB; the other languages are between 0.7 and 3 MB). Your browser keeps them, so the next run starts without downloading again. The language data comes in the compact integer version of Tesseract's neural-network models: smaller and faster than the full-precision models, and slightly less accurate on very difficult scans.
Files you can use
- Images: PNG, JPG, WebP, BMP and GIF (the first frame of an animation), plus any other format your browser can display. Transparent areas are treated as white paper.
- Screenshots: paste them straight from the clipboard.
- PDFs: each page is drawn at 200 or 300 DPI and recognised. Use PDF pages to pick pages such as
1-3, 7. Password-protected files ask for the password, which stays in your browser.
Many PDFs are not scans at all: they already contain real text. When at least half of the pages of a PDF have text, the tool offers to use that text instantly instead of running OCR — the same extraction as PDF to Text, without recognition errors.
Options explained
| Option | What it does |
|---|---|
| Languages | 28 languages, including Hindi, Bengali, Tamil, Arabic, Chinese, Japanese and Korean. Choose up to three for mixed text; every extra language makes recognition slower. |
| Layout | Automatic finds columns and paragraphs. Single block suits a cropped paragraph, Single line a caption or a code, Sparse text labels, forms and receipts where words are scattered. |
| Clean-up | Grayscale (default), Grayscale + contrast for faded or grey scans, or Black & white, which finds the best threshold between ink and paper and turns light text on a dark background into dark text. |
| Rotate | Turns sideways or upside-down images by 90°, 180° or 270° before reading. |
| Enlarge small images | Images whose long side is under 1,600 pixels are enlarged towards 2,000 pixels (at most 3×), because OCR works best when letters are about 20 to 40 pixels tall. |
| Straighten tilted scans | Tesseract measures the angle of the text lines and corrects small tilts. It does not detect pages turned on their side: use Rotate for those. |
Reading the result
Each image or PDF page gets its own editable box, a word count and a mean confidence. Every word has a confidence too: Flag words below 60% counts the doubtful ones, and Show word boxes draws a box around every word on the image, with low-confidence words in red, so you know exactly what to proofread. In a test, a clean 1,100-pixel-wide image with the lines Invoice number 4821 and Total due: 129.50 EUR came back exactly, with a mean confidence above 90%.
Make a scanned PDF searchable
Tick Also make a searchable PDF and the tool builds a PDF in which every page is the image the OCR engine read, with the recognised words placed invisibly on top. You can then search, select and copy text in any PDF reader. The page images are stored losslessly, so colour scans at 300 DPI can produce large files; 200 DPI and the Black & white clean-up keep them much smaller. To turn plain photos into a PDF without OCR, use JPG to PDF.
Tips for better accuracy
- Crop away everything that is not text with the Image Cropper; borders, photos and shadows confuse the layout analysis.
- Photograph pages straight on, in even light, and keep the text in focus.
- Pick the right language: English data cannot read Devanagari or Chinese characters.
- Printed text works best. Handwriting is usually recognised poorly, and tables come out line by line rather than as a table.