Microscopic words on a scan

pdf.scan-microtext

On a page that is only pixels, a run of consecutive words drawn far smaller than the page's own body text — read cleanly by OCR, skimmed past by a person.

How the text is hidden

A scanned page has no text layer, so the transcription is not a check on the page: it IS the page's text, and everything downstream treats it as prose the document meant to say. There is no second representation to diff against, so the only evidence available is geometry — and OCR already reports it. A payload drawn tiny survives transcription intact.

Why a model still reads it

Because the transcription becomes the canonical text of the page. Whatever OCR resolves is what the model receives, at whatever size it was drawn.

What we do about it

On a page with no text layer and a raster image, the transcription is admitted as canonical only after the quality gate (limits.minScanDpi, with limits.minScanQuality as a secondary catch). scanMicrotext then takes each usable word's box height, computes the page's median, and flags consecutive runs of words below median × limits.scanMicrotextMaxHeightRatio that reach limits.scanMicrotextMinRun in length. The page is split into a visible body run and a second run carrying the scanMicrotext flag with invisibleReason: 'sub-readable'. The rule pdf-scan-microtext fires at high, action flag; the declared-font rule excludes runs carrying this flag so one run yields one finding.

How often it fires

0% of 89 pages of 100 real scanned documents (GovDocs1, live web, RECAP), measured 2026-08-22.

This is an alert-volume number and nothing else. It says how often the alarm sounds on documents as found — not how often it is right, and not whether what it found was harmless. Documents as found may themselves carry concealment. Read it against the population named above rather than as a property of documents in general.

next

Check your own file

Three commands: a key, credit, a verdict.

Start with the API