Zro7 OCR uses Tesseract.js — Google's Tesseract 5 engine compiled to WebAssembly plus a Web Worker wrapper. You drop an image or PDF into Image to Text, the engine tessellates and recognizes characters entirely in your browser, and the result is copyable text. No cloud OCR API, no per-page pricing, no upload.
How it works, end to end
- First run: Tesseract.js downloads
tesseract-core.wasm(~2 MB) and the language model (eng.traineddata.gz, ~10 MB compressed) once. Both are cached in the browser's Cache Storage — subsequent runs are instant and fully offline. - The image is decoded to a canvas and handed to a Web Worker.
- Tesseract's LSTM neural net (trained on ~400k lines per language) runs page segmentation → line detection → character recognition.
- Output: plain text + optional HOCR/TSV with bounding boxes and per-word confidence.
Accuracy you can actually expect
- Clean digital PDF rendered to 300 DPI — 98–99% word accuracy. Use PDF OCR.
- Modern phone photo of a printed document — 92–97% with straight framing; drops fast with skew, glare, or shadow.
- Receipts / thermal print — 80–92%; specialized post-processing helps (Receipt Scanner).
- Handwriting — Tesseract wasn't trained for it. Expect <60% and unusable output.
Why WASM Tesseract holds up vs cloud OCR
Cloud services (AWS Textract, Google Vision) are more accurate on hard documents — they layer detection, layout analysis, and language models on top of Tesseract-class recognition. But for 90% of everyday jobs — screenshots, printouts, forms, business cards — WASM Tesseract is within a few percentage points and doesn't ship your documents to a third party. That trade often makes it the correct choice.
Performance tips
- Feed 300 DPI, black-on-white if possible. Double the DPI and speed halves; drop below 150 DPI and accuracy tanks.
- Straighten before OCR — a 5° skew costs 3–8% accuracy. Deskew via Zro7's built-in preprocessing toggle.
- For multi-page PDFs, run pages in parallel Web Workers (Zro7 does this automatically up to
navigator.hardwareConcurrency). - Only load the languages you need. Adding 'jpn' or 'chi_sim' bumps model download to ~40 MB each.
Steps
- Open Image to Text (or PDF OCR).
- Drop your image / PDF and pick a language.
- Wait for the first-time model download (once per language, then cached).
- Copy the text or download as .txt.
Zro7