Drop a PDF here, or
Max 10 MB · processed in memory, never stored
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.
The same construction, printed as raw objects with both content streams side by side, is in a PDF black box is a shape, not a delete key.
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.
Unapplied /Redact marks get their own finding in the report, separate from the drawn-on-top case below. A document can carry both.
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.
This is why the check interprets the content stream instead of reading the annotation list: a box drawn in an ordinary editor carries no /Redact mark, and is indistinguishable by type from a table cell.
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.
- Form XObjects that will not open. Boxes inside these reusable content blocks used to be missed entirely; since engine 1.18.0 they are walked like any other content, which is what lets this page catch a box drawn by an online editor. What is left is the residue: a block nested unreasonably deep, repeated past the cap, or that will not decode. When that happens the finding says so, and only then is the count 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, and the metadata half of it has its own free page: what does this file reveal about you lists the author names, machine paths, coordinates and device serials a document carries whether or not anything on the page was ever covered.
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. The long version, with the raw objects side by side: a PDF black box is a shape, not a delete key.