About OCR
OCR (Optical Character Recognition) extracts text from images and scanned PDFs across 13 languages. Powered by Tesseract running in WebAssembly — your files never upload, even though the OCR engine is several megabytes. The first run downloads language data; after that it's offline.
- No uploads
- Browser-only
- Works offline
- 100% free
How it works
- 1
Drop an image or PDF
JPG, PNG, WebP, or PDF (each page is recognised separately).
- 2
Pick the language
13 languages including English, Spanish, French, German, Chinese, Japanese, Korean, Arabic, Hindi, Russian.
- 3
Copy or download
Recognised text appears with confidence and word count. Copy to clipboard or save as .txt.
How OCR turns pixels into characters
Optical Character Recognition reconstructs editable text from an image of text — a scan, a photo, a screenshot. Classic engines work in stages: they binarise the image to separate ink from background, detect lines and segment them into individual glyphs, then classify each shape against a model of what each letter looks like. Modern engines like Tesseract replaced the old template-matching core with an LSTM neural network that reads whole lines in sequence, which is why they handle joined letters, varied fonts and noisy scans far better than the tools of a decade ago.
Crucially, OCR runs entirely on the visual shapes — it has no idea what the document means. It leans on a built-in language model to resolve ambiguity (is that a capital I, a lowercase l, or the digit 1?), which is why telling it the correct language matters so much. A clean, high-contrast page of printed English is close to a solved problem; a creased receipt photographed at an angle in low light is not. To go deeper on the moving parts, read What is OCR and how accurate is it.
What actually drives accuracy
- Resolution: aim for roughly 300 DPI for printed text. Below ~150 DPI, characters blur into each other and error rates climb sharply. Upscaling a small image after the fact does not add detail OCR can use.
- Contrast and lighting: crisp black text on a white background is ideal. Shadows, glare, faded ink and coloured or textured backgrounds all confuse the ink-vs-background step.
- Language and script: selecting the right language loads the right character set and dictionary. An English model will mangle accented French, Cyrillic or CJK text it was never trained on.
- Layout: multi-column pages, tables, forms and text wrapped around images can scramble reading order even when every individual character is read correctly.
- Font and rendering: standard serif and sans-serif fonts read best. Decorative, condensed, italic or very small type, and especially handwriting, are markedly harder.
Preprocessing that earns its keep
Most OCR failures are really image-quality failures, and a few seconds of cleanup beats hours of correcting output. Straighten (deskew) a page so lines are horizontal, crop away everything that is not the text, and increase contrast so the ink is genuinely dark against a genuinely light background. Converting to greyscale or pure black-and-white removes colour noise the engine would otherwise have to fight through.
When you photograph rather than scan, the capture itself is the biggest lever: fill the frame with the page, hold the camera parallel to it to avoid perspective distortion, and use flat, even lighting with no glare or shadow from your own hand. A sharp, well-lit phone photo at the right distance routinely beats a hurried scan. Where text is faint, raising contrast helps far more than raising resolution.
Where OCR stops — set expectations honestly
OCR is recognition, not comprehension, and it has hard limits worth knowing before you trust the output. Cursive handwriting remains unreliable; even neat hand-printing is hit-or-miss compared with typeset text. Engines guess at characters they cannot read, so a confident-looking transcription can still contain silent errors — anything used for legal, financial or medical purposes needs a human to proofread against the original, not a glance.
It also does not preserve everything: complex tables, multi-column layouts, equations, stamps and signatures often survive as scrambled or missing text even when the prose around them is perfect. The output is plain characters, so original fonts, exact positioning and rich formatting are not recovered. Treat OCR as a fast first draft of the text — a starting point you correct, not a finished, citable document.
Related guides
All guidesWorkflows
The complete guide to PDF compression — algorithms, trade-offs, and how to hit a target size
What's actually happening inside a PDF when you shrink it, why some files refuse to get smaller, and how to land on 100 KB, 1 MB, or any other ceiling without ruining the file.
8 min read
Concepts
What is OCR and how accurate is it really?
Optical Character Recognition turns pixels into text. Modern OCR is astonishing on clean scans and quietly terrible on phone photos of receipts. Here's why, and how to get the best out of it.
10 min read
Workflows
PDF to Word conversion — what actually round-trips, and what silently breaks
PDF is a layout format. DOCX is a flow format. They're fundamentally different things, and that explains every limitation of every PDF-to-Word converter ever made.
9 min read
Workflows
How to extract a table from a PDF into Excel
Why copy-paste turns a neat table into one mangled column — and how to get PDF tables into a spreadsheet that actually adds up.
7 min read
Frequently asked questions about OCR
How accurate is the OCR?
For clean printed text, 90%+ word accuracy. For low-resolution photos or handwriting, accuracy drops sharply. Always proofread before publishing.
Why is the first run slower?
Tesseract downloads ~5 MB of language training data on first use. The browser caches it; subsequent runs are instant.
Privacy, offline use, browser support, and pricing questions are answered on the site-wide FAQ.