PDF redaction checker: is the text under those boxes really gone?
Drop a PDF and Docfy reads its structure the way an extractor would: selectable text under opaque shapes, invisible or off-page runs, metadata, XMP, bookmarks, annotations, form values, attachments and hidden layers. Everything runs in this tab — the file is never uploaded.
- Up to 100 MB
- No upload
- Evidence per finding
- .txt and .json report
Check a redacted PDF
One PDF at a time · up to 100 MB · checked in your browser
PDF only · inspected locally · nothing uploaded · report as .txt or .json
No findings. The checks this page can run found nothing in the parts of the file Docfy could decode — read the limits below before treating that as a pass.
A report is built only after you choose a file. The checker script loads on first use; nothing is read before then.
What the check looks for
A PDF can look redacted while the text is still in the file. The checker walks the document's objects and content streams, then reports what is still recoverable — with a severity, a page number and evidence you can check yourself.
| Check | What it looks for | Severity |
|---|---|---|
| Text under shapes | Selectable text under an opaque fill drawn after it — the classic fake redaction. Evidence shows the decoded text, font, fill colour and coverage. | Critical |
| Unapplied redaction markup | /Redact annotations that were drawn but never applied, so the original text may still be in the file. | Critical |
| Hidden text | Invisible render mode, text outside the page or crop box, text clipped away, or type smaller than 2 pt. | Warning |
| Metadata and XMP | Author, title, producer, dates and custom fields in the Info dictionary, plus the XMP packet and the values it carries. | Warning |
| Bookmarks | Outline titles that can quote the section you meant to redact. | Warning |
| Comments, forms, attachments | Annotation comments, AcroForm values, XFA form data and embedded files. | Warning |
| Layers, revisions, scripts | Optional-content layers (including ones off by default), earlier save revisions that may still be recoverable, and JavaScript actions. | Warning |
| What could not be read | Unsupported filters, oversized pages or damaged structures — named, so an empty result is never ambiguous. | Info |
Evidence is capped at 12 items per finding so the report stays readable; the finding count always shows the true total. Findings are sorted critical first, then warning, then info.
How the check runs
The file is read locally
The checker parses the PDF's structure in this tab. No upload request is made — the only network request is for the checker script itself, plus an anonymous event count.
Every page is interpreted
Text runs, fills, clipping, opacity, images and form XObjects are tracked page by page. Unsupported content is reported instead of silently skipped.
You get a report you can keep
A verdict, three counts, findings with evidence, and the limits of the check. Save it as .txt for a review or .json for a record.
What a pass means — and what it does not
This is a structural check. It reads what the PDF says about itself; it does not look at the rendered page. That is what makes it fast and private, and it is also why a clean report is not a guarantee.
- Scans and image-only pages are outside the check. A box painted over a scan in an image editor leaves no text layer to find. Verify image-heavy documents visually as well.
- Encrypted PDFs are rejected, not cracked. The checker does not attempt decryption. Unlock the file first, then run the check on the unlocked copy.
- OCR layers can be legitimate. Invisible text added by a scanner is still extractable, so it is reported as a warning. It is context for your decision, not automatically a leak.
- Unreadable content is named. Filters the checker cannot decode are listed as findings, so an empty result does not hide a skipped page.
- Not legal advice. Whether a redaction satisfies a court, regulator or counterparty depends on rules that apply to you. A pass is one input, not a certificate.
Questions people ask
Does the checker upload my PDF?
No. The file is read with the browser File API and parsed in this tab. No upload request is made — open DevTools → Network while a file is checked if you want proof. Closing the tab discards everything.
What does the checker inspect?
The PDF's structure: text runs and where they sit on the page, opacity, clipping, metadata and XMP, bookmarks, annotations, form values, embedded files, optional-content layers, save revisions and JavaScript. It does not render pages to images.
Can it tell me whether a redaction is safe?
It finds content that is still recoverable: selectable text under opaque shapes, invisible or off-page text, metadata, bookmarks, annotations, form values, attachments and layers. A pass means those structural checks found nothing; it is not a guarantee and not legal advice.
Why does it reject encrypted PDFs?
An encrypted PDF can only be read with its password, and the checker does not attempt decryption. Remove the password first — export or print an unlocked copy — then run the check on that file.
What about scanned or image-only PDFs?
The checker reads text layers, not pixels. A box painted in an image editor over a scan is invisible to it, and text added by OCR may be reported as hidden even when it is intentional. Check scans visually as well.
Why is invisible text flagged if it is legitimate?
Scanners often add an invisible OCR layer on purpose. It is still extractable, so the checker reports it as a warning. If you know the layer is intended, read the finding as context rather than an error.
Does a clean result mean the file is safe to publish?
No. It means the checks listed above found nothing in the parts of the file Docfy could decode. Unsupported filters, damaged structures and content outside the inspected area are reported rather than silently skipped. Treat the report as one input, not a certificate.
Can I keep the report?
Yes. Save a .txt summary or a .json file with every finding, its evidence and the limits of the check. Both are generated in the browser and downloaded from a local blob; nothing is sent anywhere.
Other Docfy tools
Looking redacted is not the same as being redacted.
Check the file's structure before it leaves your desk, then keep the report with the rest of the review.