Drop a PDF here, or browse
Max 10 MB · processed in memory, never saved
No PDF handy? Try the sample:
Two fictional documents. The memo has a name and a settlement figure under black bars; the statement has neither, and is here so you can see what a silent report looks like.
What this finds
Two failures — different mistakes, same outcome.
Text under a covering shape
Someone drew a rectangle over a name. The rectangle is a new object on
the page; the name is exactly where it always was. Select the area in
any reader, run pdftotext, or open the file with any PDF
library and the words come straight out. The report hands them back,
because if this checker can read them so can anyone who receives the
document.
Redaction marks that were never applied
PDF has a real redaction annotation. It is a mark — a request that a region be redacted — and the content only leaves the file when a tool applies the marks. A document sent between those two steps looks finished, because most viewers draw the marks as solid boxes, and is not.
How it decides
By paint order, which is the one thing separating a redaction box from ordinary design. A table's shading, a highlight band and a coloured header are all filled rectangles sharing coordinates with text — and every one of them is painted before that text, because that is the only way the text ends up visible. A rectangle painted after the text is on top of it, and hiding it.
The same two objects, in the two possible orders
draw shading background — the text lands on top, and reads normally
draw text
draw text cover — the text is underneath, and still in the file
draw black box
Three further rules keep it quiet on honest documents. Translucent fills are ignored, because a highlighter hides nothing. Shapes larger than 40% of the page are treated as watermarks and stamps rather than redactions. And invisible text — the OCR layer under a scan — is excluded, since it is designed to be unreadable on screen and extractable by machine.
Why not just look for the redaction marks?
Because that only catches the easy half. The obvious way to check a
redaction is to find the /Redact annotations and test
whether text survives underneath them — and it works, on documents
that have annotations. The failures that end up in the news do not.
Somebody opened the file in an ordinary editor, drew a filled
rectangle over a name, and saved. There is no mark to look for: the
box is an anonymous shape, indistinguishable by type from a table
cell or a header band.
Paint order is what separates them, and it is the reason this page
interprets the content stream rather than reading the annotation
list. Both failures are reported — unapplied /Redact
marks get their own finding — but a checker that stops at the
annotations will call a drawn-on black bar clean.
What it cannot see
A checker that implies more coverage than it has is worse than none. Four things this one misses, stated plainly.
- Boxes inside form XObjects. Reusable content blocks are not walked, so a covering shape inside one is missed. When a page uses them the finding says so, and the count is a floor rather than a total.
- Flattened documents. If the page was exported to an image there is no text layer left to find — which also means the redaction worked.
- Fonts with no character map. The coverage is still reported, but the words may not be recoverable by this tool. Someone with the font programs can still get them.
- Everything outside the page content. A name taken off the visible page can survive in document metadata, an attachment, a form field or an earlier revision. Those are separate signals in the full report.
How to redact so that it holds
Use your tool's redaction feature and then apply the redactions — the step that deletes the underlying content. Exporting to flattened images also works, and costs you searchable text. What does not work: drawing a filled rectangle, using a black highlighter, setting the text colour to match the background, or covering the area with an image. All four leave every character in the file.