Drop a redacted PDF. The checker looks for text still present under black boxes, invisible text, hidden data and earlier versions of the file, then writes a coverage statement of what it examined. The file never leaves your browser.
These one-page PDFs look the same. Both show an invented expense record for USD 480.00, reference H-028. One still contains the traveler’s name; the other was generated without it. They contain no customer data and are not exports from the DocHush desktop app.
Download either sample below.
In the checker above, enter Casey Roe under “Words or numbers that must be gone.” Leave the pattern checks selected and excerpts off.
Choose the downloaded PDF. The check starts when you select the file.
Read the findings and coverage, then choose the other sample to compare.
01 / COVERED TEXT
The name is still there.
A black rectangle covers Casey Roe, but the original text remains in the PDF.
Tested on September 20, 2026 with checker 0.1.0 (commit 674c23d), searching for Casey Roe with all pattern checks on and excerpts off. These samples isolate a text-cover case. They do not test OCR, image contents, attachments or every kind of PDF. A result on either sample says nothing about another file.
If your sample results are different
Match the file and setup. Compare the checked file’s SHA-256 with its sample card. Use the original download: saving again or printing to PDF can change its bytes and hash. Enter Casey Roe, select all five pattern checks and leave excerpts off. Compare the checker version with the recorded test version.
Read the individual findings. “Risk found” need not mean your search term matched; pattern matches need human review. The covered-text sample’s recorded findings are text under a dark cover and the search-term match. If only one appears, do not treat the missing finding as proof that the text is gone.
Read the status and coverage. “Could not verify” is not a pass. Check what completed, what could not be examined and any error details before deciding what still needs review.
If the file, settings and version match but the result still differs, keep any available coverage statement or error details, plus your browser version, for investigation. These samples test only a text-cover case; matching their results does not validate another PDF.
Every run ends in one of three results: Risk found, No issue found within this check’s coverage or Could not verify. A coverage statement follows, listing each check, what it covered and what it could not examine. A clean result describes the listed checks only; it is not a statement about content the checks cannot see.
A finding is a prompt to review the content. Information you are permitted and intend to share does not automatically need removal. Decide what the recipient should receive before acting on a finding.
What it checks
File identity. Size and SHA-256 of the exact bytes that were checked.
Document structure. PDF version, encryption, linearisation, signature objects and a modified document identifier.
Text layer per page. Whether each page carries text, is image-only, or has an invisible text layer over an image.
Hidden text. Text under a dark cover drawn in the page content, text covered by an annotation, text in an invisible rendering mode or a hidden layer, text drawn in a near-background colour, and text outside the visible page area. The rendered page and the page’s drawing operators are compared.
Annotations. Redaction marks that were never applied, file-attachment annotations, annotation text, hidden annotations and annotations that overlap text.
Metadata. Document information fields and the XMP packet.
Embedded files. Presence, name, size and description of attachments; their contents are not opened.
Bookmarks. Outline titles.
Layers. Optional content that is hidden by default; text inside it is reported as hidden text.
Form fields. Field values and default values, and the presence of XFA data.
JavaScript. Document-level and page-level script actions and the open action.
Earlier versions. Text in earlier revisions kept by incremental saves, found by truncating the file at previous end-of-file markers and reading each prefix as its own document.
Search. Your own words and numbers in page text (visible and hidden), earlier versions, metadata, annotations, form values, bookmarks, attachment names and scripts, plus the literal bytes of each term anywhere in the file. Numbers match regardless of grouping.
Patterns. Email addresses, phone numbers, US Social Security numbers, payment card numbers (Luhn) and IBANs (checksum). Every match is labelled as a pattern match that needs a human look.
What it cannot prove
Pixels of scanned pages and images are not read (no OCR). A scan with a black box painted on it is reported as an image-only page, not as clean.
One parser (pdf.js) is used. Another reader may extract text differently.
Leakage through the positions of the remaining glyphs and inference from surrounding context are not detected.
Contents of embedded files are not searched.
Earlier versions are found by truncation only; unreferenced objects are not exhaustively audited.
Pattern matches are heuristic and unverified.
Privacy
The file is read by your browser and processed by pdf.js in a Web Worker on this page. No request carries your PDF, search terms or checking results; there is no PDF upload endpoint, and we do not store them on our servers. You can inspect the network requests in your browser’s developer tools while a check runs.
Page traffic statistics are separate from PDF checks and do not include your PDF, search terms or results. Cloudflare performance measurement is disabled on this checker page. See our website privacy notice for details about page requests and statistics.
Verify this build
This page serves version 0.1.0 of the checker, built from commit 674c23d56326664718cbf8f596bc5d6340ae0c8a with pdf.js 6.3.289. VERSION.json lists the SHA-256 of every file in the bundle. The source is published under the Apache-2.0 licence at github.com/dochush/pdf-redaction-checker; rebuilding that commit with the pinned toolchain reproduces the hashes.
Checking by hand
The guide Can PDF redaction be reversed? explains when a redaction can be undone, which checks you can run without any tool, and what those checks cannot prove.
Next steps
How to redact a scanned PDF: why this checker reports image-only pages instead of reading them, and what to review by eye.