100% local · Tesseract.js

Extract text from images in your browser

OCR Extractor reads text from receipts, book pages, notes, and screenshots using Tesseract.js — running fully on your device. No uploads, no API keys, no server.

Indonesian + English Multi-image Word-level confidence No uploads
OCR Settings
First use of each language downloads trained data once; cached afterwards by your browser.
Plain text reads naturally. Bounding boxes show coordinates per word. hOCR is an HTML standard for OCR results.
60
Words below this confidence are highlighted in amber and underlined in the extracted text.
Preparing… Overall 0%
No images added yet.

How to use OCR Extractor

Four simple steps — your images are processed locally in your browser and never uploaded anywhere.

1

Add images

Drag-and-drop or browse to add one or more images: JPG, PNG, WebP, BMP, or GIF. Receipts, scanned pages, notes, and screenshots all work.

2

Choose settings

Pick languages (Indonesian, English, or both), select plain text / bounding boxes / hOCR output, and set a confidence threshold for low-confidence highlighting.

3

Click "Extract text"

OCR Extractor runs Tesseract.js on each image sequentially. The first run downloads language data (~10–15 MB per language); subsequent runs are cached.

4

Review & download

Copy text per image, download individual .txt files, copy all text together, or download a .zip with every result. Low-confidence words are underlined in amber.

Truly private

Images are processed entirely in your browser via Tesseract.js (WASM). They are never uploaded to a server, never stored, never logged.

Indonesian & English

Both languages are supported out of the box. Run them together ("eng+ind") for mixed-language documents like Indonesian receipts with English brand names.

Word-level confidence

Every word gets a confidence score from 0–100. Set a threshold and ambiguous words are highlighted so you know what to proofread.

Batch processing

Queue up many images at once. OCR Extractor runs them sequentially with a per-image and overall progress bar, so you can step away while it works.

Flexible export

Copy text per image, download a single .txt, copy all text concatenated, or download a .zip with every result and a combined file. Your choice.

Open & transparent

Built on the open-source Tesseract.js (Apache 2.0) and JSZip (MIT). The full source is on GitHub — you can audit it, fork it, or self-host it.

Frequently asked questions

No. OCR Extractor runs entirely in your browser using Tesseract.js (WebAssembly). Your images are read into memory on your own device, processed locally, and the result is offered as text — they never touch any server. You can verify this by opening your browser's DevTools → Network tab and watching that no image data is sent anywhere while OCR runs.

After the first run. On first use of each language, Tesseract downloads the trained language data (~10–15 MB per language) from its CDN; your browser then caches this data. On subsequent runs — even Browser-based — the cached data is used and no network is required. The Tesseract.js library itself is loaded from a CDN on first page load, so save the page (Ctrl+S → "Webpage, Complete") if you need guaranteed Browser-based use.

The first OCR run with a language has to fetch the trained data (eng ~15 MB, ind ~10 MB) and initialise the WASM engine. Subsequent images use the same engine instance and cached data, so they're much faster — typically 1–4 seconds per image on a modern laptop.

Tesseract is excellent with clean, high-contrast printed text (book pages, receipts, scanned documents) — usually 95%+ accuracy. It struggles with handwriting, very small fonts, low-contrast photos, skewed text, and decorative typefaces. For best results, use well-lit, straight, in-focus images. The confidence highlighting helps you spot which words to double-check.

Plain text gives you the extracted text as a normal readable paragraph. Bounding boxes adds each word's pixel coordinates (x0, y0, x1, y1) — useful if you want to overlay text on the image or build a search index. hOCR is an open HTML-based standard for OCR output that embeds text plus geometry in a structured document, suitable for ingestion by other OCR tools.

Every word Tesseract returns has a confidence score (0–100). Words below the threshold you set are highlighted in amber and underlined in the extracted text, and shown in red in the per-word confidence table. This makes it easy to spot which words to proofread manually. The default is 60; lower it to see fewer highlights, raise it to be more strict.

There is no artificial limit. The constraint is your device's memory — Tesseract.js loads each image into a WASM buffer. Large images (over ~4000px) are automatically downscaled to a max of 2000px on the longest side before OCR, which keeps memory reasonable and improves speed. For very large batches, OCR Extractor processes images sequentially to avoid exhausting RAM.

Any modern browser with WebAssembly support: Chrome 57+, Firefox 53+, Safari 11+, Edge 79+, and equivalent mobile browsers. WASM is required. For best performance on large images, a device with at least 2 GB of free RAM is recommended. Internet Explorer is not supported.