Pull the text out of any picture, privately
Text trapped inside an image is surprisingly useless: you cannot search it, quote it, edit it or paste it anywhere. OCR, optical character recognition, is the bridge, and it usually comes with a catch: upload your document to someone's server and wait. This converter runs the whole recognition on your device instead. The engine is Tesseract, the open source OCR that has powered everything from library archives to Google's own projects, compiled to WebAssembly and run in your browser. Your receipt, letter or statement is analysed where it sits, and only the extracted text ever appears on screen. For documents you would not email to a stranger, that difference is the entire product.
How to extract text from an image
Drop a JPG, PNG or WebP image onto the box, or click to choose one, then press Extract text. The first time you run it, the browser downloads the OCR engine and English language data (a few megabytes from a public CDN) and caches them for next time. A progress indicator follows the recognition as it works through the image. When it finishes, the text appears in the box below, ready to copy in one click or download as a plain text file. Check it over before relying on it: OCR is very good on clean print and honestly fallible on poor photos, and a quick proof read catches the handful of characters it may have mistaken.
Good jobs for OCR
- Receipts and invoices: pull totals, dates and item lines into a spreadsheet or expense note instead of typing them.
- Book and document excerpts: quote a paragraph from a scanned page without retyping it.
- Screenshots: recover the text from an error message, chat or settings screen so you can search for it.
- Signs, labels and menus: photographed text becomes something you can paste into notes or a translator.
- Printed forms and letters: turn a paper letter someone mailed you into an editable digital copy.
How OCR works under the hood
Tesseract first prepares the image: it works out where the blocks of text sit, straightens the baseline, and separates foreground letters from background. Then a neural network, trained on millions of lines of printed text, reads each line character by character while a language model nudges ambiguous shapes toward real words, which is why "rn" in a blurry photo usually resolves to the "m" the sentence needed. Running that in a browser used to be impossible; WebAssembly changed it, letting the same C++ engine that servers run execute in a sandboxed worker in your tab at close to native speed. The honest limits are physical ones: the engine cannot invent pixels that are not there, so tiny, blurred or shadowed text will always read worse than a clean scan, and handwriting is largely beyond it.
Tips for cleaner results
- Photograph straight on, in good light. Angle and shadow are the two biggest accuracy killers; a flat, evenly lit shot reads dramatically better.
- Crop to the text. Trim busy borders and unrelated content before running OCR, so the engine spends its effort on the words.
- Bigger is better. If text is small in the frame, retake the photo closer rather than zooming digitally afterwards.
- Proofread numbers twice. OCR confuses 0 and O, 1 and l, 5 and S. Totals and reference numbers deserve a careful check against the image.
- For a fully text PDF, start from the source. If the document began life digitally, the text is already in there; a scanned image is where OCR earns its keep.
A worked example
A freelancer photographs a paper purchase order a client handed her, because she needs the line items in her invoicing notes. She drops the photo here, runs the extraction, and in under a minute has every item, quantity and price as text she can paste and tidy. The purchase order contained the client's internal pricing, and it was never uploaded to any server to get there.