How OCR runs in a browser without uploading your scan

Optical character recognition has a reputation for needing a server, and historically it did: the models were large and the processing was heavy. That has not been true for a while, and it matters, because documents people want to OCR — contracts, statements, medical letters, identity papers — are exactly the documents they should think twice about uploading. A recognition engine compiled to WebAssembly runs inside the browser tab. Pages are rendered to images, the engine is handed each image, and it returns text with per-word confidence. The work happens on your CPU; the file is read from disk by the tab and never transits a network. There is a detail worth checking in any tool claiming local OCR. These engines need two things at runtime: the compiled engine itself and a trained language model, and both are commonly fetched from a public CDN on first use. The document is not uploaded, which is what the claim says — but the request still announces to a third party that someone at your address is running OCR, and a compromised CDN is serving code that has your document in memory. We serve both from this site for exactly that reason. You can verify it: open the network panel, run an OCR pass, and confirm every request is same-origin. One practical note: if your PDF already has a text layer — most PDFs exported from an application do — you do not need OCR at all. Extract Text pulls that layer out directly, and it is both instant and exact. OCR is for scans and photographs, where there is no text layer to recover.

Tools

  1. Speed is bound by your device. A long scan takes longer on a phone than on a laptop.
  2. Quality is bound by the scan. Skewed, low-contrast or 150 DPI pages recognise poorly everywhere.
  3. Handwriting is mostly out of reach for this class of engine.
  4. Very large documents are limited by the memory a browser tab is allowed.