Retyping a scanned letter or a screenshot of an error message is slow and error-prone. Drop in images or PDFs, pick the languages on the page, and get copyable text with every word outlined and scored for confidence. Nothing is uploaded; the OCR engine runs on your device.
Processing locally on your device
Overview
Optical character recognition turns a picture of text into real characters. This tool uses Tesseract 5, the long-running open-source OCR engine, compiled to WebAssembly by Tesseract.js 7 and run in its own Web Worker so the page stays responsive. Tesseract finds blocks, lines and words on the page, then reads each line with an LSTM neural network that looks at the whole line at once, which copes with varied fonts far better than the old character-by-character matching. Every word comes back with a bounding box and a confidence score from 0 to 100.
Images and PDFs can be mixed in one batch. PDF pages are rendered in the browser with PDF.js at about 300 DPI (capped at 3,500 pixels on the long side), which is the resolution OCR engines are tuned for. Before recognition each page goes through optional clean-up on a canvas: grayscale conversion, a contrast stretch from the 1st to the 99th brightness percentile, an Otsu black-and-white threshold for noisy scans, automatic inversion of light-on-dark text such as dark-mode screenshots, and 2× upscaling for images under 1,600 pixels. Tesseract then detects the skew angle of the text lines and straightens the page before reading it.
The engine is about 4 MB and each language adds 1–3 MB of trained data (English is 2.9 MB), downloaded on first use and cached, so later runs work offline. You can combine up to four of the 34 listed languages, for example English with German, or Simplified Chinese with English. The page layout setting matters too: automatic mode handles columns and paragraphs, single-block mode suits receipts and labels, and sparse mode finds scattered text in screenshots and photos of signs.
Results appear next to the page with every word outlined: green for confident words, amber for doubtful ones and red below 60%, so you know exactly which words to check. You can correct the text in place, then copy it or download a TXT file, a JSON file with line and word coordinates, hOCR for other OCR tools, or a searchable PDF that keeps the page image and adds an invisible text layer. On a laptop, a clean page usually takes a second or two.
| Source | Expected accuracy | Layout | Clean-up to try |
|---|---|---|---|
| Clean scan or born-digital PDF | Very high | Automatic | Defaults |
| App or website screenshot | High | Sparse text | Upscale, invert for dark mode |
| Receipt photo | Good | Single block | Black & white, deskew |
| Phone photo of a book page | Fair to good | Automatic or single column | Contrast, deskew, crop first |
| Low light, blurry or curved page | Poor | Automatic | Retake the photo if you can |
| Handwriting | Unreliable | — | Type it manually |
Drop images (JPG, PNG, WebP, GIF, BMP) or PDFs onto the tool. Several files and multi-page PDFs are fine.
Choose the languages that appear in the document, up to four.
Pick a page layout and adjust clean-up options such as contrast, black & white, invert and deskew if needed.
Click Read text and watch each page being recognized.
Check words outlined in red or amber and correct the text in the editor.
Copy the text or download TXT, JSON, hOCR or a searchable PDF.
Use cases
Pull the text out of a screenshot of a stack trace, a slide or a video frame so you can search for it or paste it into a ticket. Sparse mode and auto-invert handle dark-mode screenshots well.
Make old letters, contracts and reports searchable without sending sensitive paperwork to an online service. A scanned PDF becomes a searchable PDF with the original page images intact.
Read totals, dates and reference numbers from a photo of a receipt for an expense report. Single-block layout keeps the lines in order, and the confidence colors show which digits to double-check.
Download the JSON with word-level bounding boxes to feed your own scripts, for example to find a field at a fixed position on a batch of forms.
Pro tips
Answers to common questions about the ocr (image to text).
Not reliably. Tesseract is trained on printed text. Neat block capitals sometimes work, but cursive and typical handwritten notes usually produce poor results.
Yes. Each page is rendered to an image at about 300 DPI in your browser and recognized in turn. Turn on Searchable PDF to get a new PDF with the page images and an invisible, selectable text layer.
The box color shows Tesseract's confidence in that word: green is 85% or more, amber 60–85% and red below 60%. Red words are the most likely to contain mistakes, so they are the ones to check.
It keeps line breaks and paragraph order and records where every word sits on the page (in the JSON and hOCR files). Fonts, bold text and table structure are not rebuilt as a formatted document.
The first run downloads the OCR engine (about 4 MB) and the trained data for each language you selected (1–3 MB each). Both are cached, so later runs start straight away and work offline.
They are applied to a copy of the page before OCR: contrast stretching darkens faint text, Black & white removes background noise, auto-invert flips light-on-dark text, and upscaling enlarges small text. The word boxes are shown on that cleaned image so you can see what the engine read.
No. ToolEnhancer processes files on your own device inside the browser. They are never sent to, stored on or seen by our servers.
Yes. The ocr (image to text) is free to use with no sign-up, no watermarks and no daily limits.