Offline OCR & Document Redactor

Extract text and redact sensitive regions. It runs entirely in your browser, and nothing is uploaded.

ZERO UPLOAD · ALL LOCAL
  1. Drop a JPEG, PNG, or WebP image onto the drop zone. OCR starts automatically.
  2. Wait for text extraction to complete. The image canvas appears on top with the extracted text panel below it.
  3. Draw rectangles over sensitive regions on the canvas to redact them. Covered words become block characters in the text panel.
  4. Use Undo Last or Clear All to adjust redactions at any time.
  5. Export with Download PNG (redacted image), Download PDF, or Download TXT.

What this page covers

  • Recognized text one of the structured outputs most OCR engines return
  • Confidence scores per character or word, part of the same structured output
  • Bounding box coordinates at character, word, line, paragraph, and block level, the foundation for redaction

What this page covers

  • Irreversible content removal proper structural redaction cannot be recovered once applied
  • Privilege or redaction log documents what was redacted and why
  • Secured original copy preserved for potential court review

What to look for

  • typically exceeds 97 percent
  • about 23 MB (standard) or 15 MB (tessdata_best)
  • over 100 languages, each with its own traineddata file
  • developed by HP in the 1980s, open sourced in 2005

Preprocessing (grayscale, Otsu binarization, deskew, noise removal) runs before the LSTM layer and strongly affects final accuracy.

What this page covers

  • 300 DPI AIIM's minimum guideline for text-only documents
  • 300 to 400 DPI NARA's archival standard for text documents
  • 600 DPI NARA's standard for documents with fine illustrations or mixed content

What this page covers

  • Author, title, subject, keywords PDF metadata fields stored separately from page content
  • Creation and modification date another metadata field structural redaction of page content does not clear

PRIVACY GUARANTEED Your document stays on this device. Text extraction and redaction run locally in your browser, with no upload, account, or server involved.

Input (Image)

Drop an image here

or click to select · JPEG, PNG, WebP · max 20 MB

Initialising OCR engine…

Extracting text… 0%

Input (Image)

Output (Extracted text)

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.

The English model and other languages

One boundary deserves a name before you feed the tool anything unusual: it runs the English model, and only the English model. Because the worker initialises Tesseract with the English traineddata and exposes no language selector, every document gets read with English eyes no matter what it actually contains. There is no language switch. A page in Spanish, French, or German falls outside what that model was trained to recognize, and no setting in this tool changes that. Scripts beyond the Latin alphabet, such as Cyrillic, Arabic, or Chinese, sit further still from its vocabulary, so whole lines can fail to register at all.

Tesseract itself is not English-only. Its maintainers publish a separate traineddata file for each of more than a hundred languages, from Spanish to Chinese, and setups that need those languages load the file that matches the document.3 In the browser build here, English is what ships, so the reliable path for a non-English document is a tool configured for that language. One limited middle ground exists: the text panel is editable, so a document that is mostly English with a few foreign names or phrases can be corrected by hand after extraction instead of hunting for another tool for the sake of two stray words.

Reading order and multi-column pages

How does the text panel decide what order the words appear in? The tool rebuilds lines by grouping words that sit at the same vertical position, then reading each visual row across the full page width from left to right. On a single-column page that rule matches the way the document was written, so the output reads naturally. On a two-column page it interleaves instead: the first row of the left column and the first row of the right column land on the same output line, because both sit at the same height. The wider apart the columns are, the more scrambled the interleaving looks.

Redaction survives the interleaving untouched, because boxes are positional. A rectangle over the account number in the right-hand column removes exactly the words inside it, wherever the text panel happens to list them, and the block characters take their place in the interleaved line just as they would in a single-column document. Because the canvas keeps the true layout, what you see covered on screen is exactly what gets covered in the export. The real casualty is the exported text file's readability: to keep column order intact, reorder the interleaved lines by hand in the editable panel before downloading, or crop each column into its own image and run the tool once per column.

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.4

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.

There is no find-and-redact in this tool. You draw boxes by position, one rectangle at a time, and nothing searches for a word on your behalf. The text panel is the finding aid: read through the extracted text to locate every instance of the name or number you are removing, then draw a box over each occurrence on the canvas, checking after each one that the block characters replaced the right words. Slower than a search box, yes, but the loop keeps every removal visually confirmed against the actual page before you export anything.

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.

Can someone recover what you covered? Not from the exports. The PNG and the PDF are flat rasters, and the black rectangles overwrite the pixels underneath rather than hide them, so neither file carries recoverable content or a text layer to select and copy from. The text file holds block characters wherever the redacted words were, so pasting it anywhere leaks nothing. What still contains the sensitive content is the original image file on your disk, which this tool never modifies, and the live session itself, which holds everything in browser memory until you close the tab. Share the exports, and apply your own keep-or-destroy policy to the original.

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.5

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.6

Where does a word go when the panel skips it? Every word Tesseract returns carries a confidence value, and this tool silently drops any word scoring under 20 before the text ever reaches the panel.4 A missing word is therefore usually recognized but rejected, not invisible to the engine: the engine saw the word but was not confident enough about what it says. Because blurry edges, low contrast, and small type all push scores down, the same page can extract cleanly at 300 DPI and lose words from a dim photograph. When a critical word is missing, rescan at higher quality instead of retyping from memory.

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.67

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.

Sources
  1. 1.

    Naptha, "Tesseract.js API Documentation," github.com, accessed June 2026. https://github.com/naptha/tesseract.js/blob/master/docs/api.md

  2. 2.

    MDN contributors, "WebAssembly," developer.mozilla.org, May 2026. https://developer.mozilla.org/en-US/docs/WebAssembly

  3. 3.

    Tesseract OCR contributors, "Traineddata Files for Version 4.00 +," tesseract-ocr.github.io, accessed September 2026. https://tesseract-ocr.github.io/tessdoc/Data-Files.html

  4. 4.

    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

  5. 5.

    MDN contributors, "Web Workers API," developer.mozilla.org, April 2025. https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API

  6. 6.

    Tesseract OCR contributors, "Improving the quality of the output," tesseract-ocr.github.io, accessed June 2026. https://tesseract-ocr.github.io/tessdoc/ImproveQuality.html

  7. 7.

    Tesseract OCR contributors, "FAQ," github.com, accessed June 2026. https://github.com/tesseract-ocr/tessdoc/blob/main/FAQ.md

FAQ