How offline OCR works
Optical character recognition traditionally requires sending your image to a remote server where recognition software runs, which means the file leaves your machine and is processed on infrastructure you do not control. This tool takes a different approach: it loads Tesseract, a widely used open-source OCR engine, as a WebAssembly module that executes directly in your browser. No image data is transmitted anywhere, and the page makes no third-party requests for your document content.12
The first time you use the tool, your browser downloads the Tesseract WASM core files and the English traineddata, then stores them through the browser cache so they can be reused on later sessions. Subsequent loads read those files from cache instead of the network, so the tool starts quickly and can run fully offline once the initial download has finished, as long as the cache has not been cleared.1
A concrete pass through a real TSV row shows what the tool works with.
Scanning a printed line reading Invoice Number: 48291
produces one row per recognized word, each carrying its own left,
top, width, height, and conf fields alongside the
recognized text itself, the exact structure Tesseract's command line
reference documents. Drawing a redaction rectangle over the digits
48291 removes only the word whose bounding box falls inside
that rectangle, leaving Invoice Number: intact in the
exported text file.
Document redaction
Redaction is the act of removing sensitive content from a document before it is shared, and doing it well requires more than painting over pixels. A good redaction workflow needs to identify every word in the image, locate the regions that contain confidential information, and strip the underlying text so it cannot be recovered from the exported file. That is what the canvas overlay and the text panel are doing together here.
A naive redaction that only paints black pixels over sensitive text leaves the original characters recoverable in the document layer. This tool avoids that failure mode by computing word bounding boxes from the OCR output and removing any word whose coordinates intersect your rectangle, so the rendered text file and exported PDF contain no trace of the redacted content.
Drawing boxes over the canvas
After extraction, draw opaque black rectangles over any region on the
image canvas. The tool cross-references each rectangle against the word
bounding boxes returned by OCR, replacing only the words whose coordinates
overlap a redaction box so the exported text file and PDF contain no trace
of the covered content. Tesseract's TSV output includes word_num, left,
top, width, height, conf, and text fields, which is what makes that
coordinate comparison reliable even when lines are uneven or the text is
rotated slightly.3
Each rectangle can be placed freely, and the tool updates the text panel live as you add or move a box, so you can see exactly which words will be removed before you export. Drawing a box slightly larger than the target line ensures the entire bounding box is caught, which avoids leaving partial words visible in the final text file.
Editing and exporting redactions
Use Undo Last to remove the most recent rectangle, or Clear All to start over from a clean canvas. Redactions are non-destructive during your session because the original image data is held separately from the overlay, so adjusting a box never permanently alters the source pixels. The exported PDF keeps the redacted canvas as an image rather than a searchable text layer, which prevents anyone from recovering the covered words from the downloaded file.
Privacy guarantee
The zero-upload guarantee is unconditional because OCR and redaction run
inside a browser WebWorker that never transmits your image data to any
server. That worker operates in a sandboxed background thread with no
access to the page DOM and no telemetry, logging, or cloud processing of
any kind, so the pixels you load stay on your machine for the entire
session.4
You can confirm this guarantee yourself by loading the page, disconnecting from the network, going offline in your browser's developer tools, and then processing a document to check that nothing is sent over the network. The recognition and redaction steps continue to work without any external connection, which demonstrates that no outside service is involved in reading, storing, or analysing your files.
Supported formats
JPEG, PNG, and WebP images are supported up to 20 MB per file, which is
enough for high-resolution scans of multi-page printed documents such as
contracts or medical records. The tool reads each image directly from your
disk through the browser's file picker without uploading it anywhere, so
even large files stay local and process quickly on modern hardware.
PDFs are not directly supported by Tesseract.js, so take a screenshot or export a page as an image first, then process that image through the tool. Multi-page documents require processing one image at a time, which keeps each OCR job small, reduces the chance of a timeout, and lets you review and redact each page individually before exporting. Once every page has been processed, you can save each redacted result as its own PNG or PDF file.
Getting the best results from scanned documents
OCR is only as good as the image you feed it, and the difference between a clean scan and a quick phone photo can be dramatic. Resolution, contrast, skew, and noise all influence how confidently Tesseract can segment lines and recognise characters, so a few minutes of preparation before you upload often pays for itself in fewer recognition errors and less manual correction.
Resolution, contrast, and preprocessing
OCR accuracy depends heavily on input quality. Tesseract performs best on
high-resolution scans with strong contrast between dark text and a light
background. Its documentation recommends images of at least 300 DPI, so
low-resolution captures, poor lighting, and noisy backgrounds can increase
recognition errors. Thin serif strokes, skewed pages, and wide blank
borders also make segmentation harder, so use auto-enhancement, deskew,
and tight cropping before processing.5
Why handwritten text is less reliable
Handwritten text is substantially harder for Tesseract than printed text. The English language model bundled with this tool was trained primarily on printed fonts, and recognition accuracy for handwriting varies widely depending on how closely the handwriting resembles printed letterforms. No configuration option improves this without a language model specifically trained on handwriting samples. For printed documents with standard fonts at adequate resolution, recognition accuracy is usually much stronger than for handwriting; photographs of documents can still introduce perspective distortion and uneven lighting that reduce accuracy further, so a flatbed scan is usually the safer starting point.56
Professional document processing and confidentiality
Many professions handle documents that contain sensitive information alongside the text they need to extract. Legal teams, journalists, and HR departments all face the same tension: they need the content in a usable form, but they also need to remove anything that should not leave the organisation. Running OCR and redaction locally keeps that entire workflow under your control.
Workflows that combine extraction and redaction
Several professions routinely process documents that combine the need for text extraction with strict confidentiality requirements. Legal teams reviewing discovery materials need to extract text from scanned files while redacting privileged information before sharing with opposing counsel. Journalists working with leaked documents use redaction to protect sources before publication. HR teams processing paper forms need to extract structured data while removing personally identifiable information before routing it to downstream systems. In each case, sending documents to a cloud OCR service creates an unnecessary copy outside the organisation's control.
Compliance benefits of session-scoped processing
Medical records, financial statements, and government documents are often subject to legal restrictions on disclosure. Because CapyToolkit's OCR runs entirely in your browser with no server communication, you can process these documents without triggering the data handling obligations that would apply to cloud-based alternatives. The session-scoped processing means no residual copy exists after you close the tab, which simplifies compliance documentation for environments with strict data residency or data minimisation requirements.
Best-Result Scan Checklist
- 300+ DPI scan Tesseract's own documentation recommends at least 300 DPI. Anything lower increases recognition errors.
- Strong contrast, no skew Dark text on a light background, deskewed and tightly cropped, segments more reliably than a noisy, tilted photo.
- Printed text, not handwriting The bundled English model was trained on printed fonts. Handwriting accuracy varies widely and has no dedicated fix.
- Under 20MB file size JPEG, PNG, and WebP are supported up to 20MB per file.
Scan your own document above and check it against these four conditions before you rely on the extracted text.
- 1.
Naptha, "Tesseract.js API Documentation," github.com, accessed June 2026. https://github.com/naptha/tesseract.js/blob/master/docs/api.md
- 2.
MDN contributors, "WebAssembly," developer.mozilla.org, May 2026. https://developer.mozilla.org/en-US/docs/WebAssembly
- 3.
Tesseract OCR contributors, "Command Line Usage," tesseract-ocr.github.io, accessed June 2026. https://tesseract-ocr.github.io/tessdoc/Command-Line-Usage.html#tsv-output
- 4.
MDN contributors, "Web Workers API," developer.mozilla.org, April 2025. https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API
- 5.
Tesseract OCR contributors, "Improving the quality of the output," tesseract-ocr.github.io, accessed June 2026. https://tesseract-ocr.github.io/tessdoc/ImproveQuality.html
- 6.
Tesseract OCR contributors, "FAQ," github.com, accessed June 2026. https://github.com/tesseract-ocr/tessdoc/blob/main/FAQ.md