PDF Redaction Checker
Check what is still recoverable from a PDF — text, document properties, comments, embedded files and form values. Nothing is uploaded.
PDF Redaction Checker
⚠️ A clean result is not a guarantee. This reads the routes a normal PDF reader exposes. It cannot prove a negative — an unusual producer can leave bytes somewhere nothing enumerates. Treat a clean report as "the ordinary ways of getting it out found nothing".
🔒 PDFs stay on your device. Text is read with self-hosted pdf.js, the object graph with self-hosted pdf-lib. Nothing is uploaded — verify in DevTools → Network.
How to check a PDF before you send it
Load the file you are about to send
Not the original — the one that has already been redacted, exported or "saved as". The whole point is to inspect the artefact that will actually leave your machine.
Read the verdict, then the routes
The verdict says how many routes returned something. Open each one to see exactly what came back — the extracted text, the document properties, the comments, the attachment names, the form values.
Search for the thing you removed
Type the name, address or reference you meant to take out. The tool reports which route it appeared in, so you know whether the problem is the page, the properties, a comment or an attachment.
Check the page strip
Each page is marked as carrying text, being image-only, or being blank. A file where some pages are image-only and others still carry text is the signature of a redaction that stopped early.
Fix and re-check
Use the PDF redactor for the pages, the metadata cleaner for the properties, then load the new file here again. A redaction is finished when this page has nothing to report.
Five ways text leaves a PDF, and why copy-paste only finds one
Almost everyone who checks a redacted document checks it the same way: open the file, try to select the blacked-out area, see whether anything highlights. That test is worth running and it is nowhere near sufficient, because it interrogates exactly one of the five places a PDF stores readable text. The other four are not obscure or exotic. They are the document properties, the comment layer, embedded file attachments, and the values sitting on form fields — all of them standard, all of them readable by any PDF library in a couple of lines of code, and none of them visible on the page you are looking at.
The reason this matters is that the four invisible routes are untouched by the thing most people do to redact. Drawing a black rectangle appends a fill instruction to a page's drawing program. It does not remove the text instruction that came before it, and it has no relationship at all to the title stored in the document properties or to the sticky note somebody left in the margin during review. You can produce a file where the page looks immaculate and the author's name, the internal project code and a whole attached spreadsheet come back out on request.
A copy-paste test checks one of five routes. Passing it tells you about the page, and nothing about the file.
Why searching the raw file proves nothing either
The next instinct is to open the PDF in a text editor and search for the name. This is worse than useless, because it reliably returns nothing on files that are leaking badly. Measured on our own test document: the name that a PDF reader will happily hand you appears zero times in the raw bytes. Page content is compressed with Flate, and inside that compressed stream the text is written as hexadecimal digits rather than letters — <43414e415259> Tj rather than anything you could recognise. Add subset font names and the word you are hunting is three transformations away from a search box. None of those transformations is protection. Every one of them defeats a naive search, which is precisely the combination that produces false confidence.
The failure that is not about rectangles at all
In practice the most common leak is duller than a botched rectangle: the same name appears on more than one page, and only one page was treated. A redaction tool that flattens a page to an image does its job perfectly on that page and leaves every other page exactly as it was. That is correct behaviour and it is not what the person clicking the button assumes. This checker marks each page as text-carrying, image-only or blank precisely so that pattern is visible at a glance — a run of image-only pages followed by a live one is a job that stopped early.
Where this bites in the region
Singapore's PDPC has published enforcement decisions where the disclosure route was a document nobody thought of as a disclosure — an attachment, a properties field, a review comment — rather than the body of the document. The same shape recurs across Malaysian court filings, Hong Kong legal practice and Australian FOI releases: the redaction on the page was competent, and the file carried the answer somewhere else. Anyone in the region who sends documents to a regulator, a court, a client or a counterparty is doing so under a duty that does not distinguish between "on the page" and "in the file". The distinction only exists inside the software.
What this tool does not do
It does not modify your file, it does not remove anything, and it cannot promise a file is safe. It reports what came back through five ordinary routes, and says so in those terms. It reads embedded text, not pictures of text: a scanned page that has never been through OCR carries no text layer to find, which is why a scan of a document can look identical to a properly flattened one in the page strip. And it inspects what standard libraries enumerate — a producer that stores something unusual in a private key may not be listed. If your obligation is legal rather than practical, treat this as a fast way to catch the ordinary mistakes, not as a certificate.
10 Things to Know About PDF Leaks
A black rectangle is a drawing instruction appended after the text instruction. Both survive in the file — the reader simply paints one over the other.
Measured on our own test file: a cosmetically redacted PDF leaked eight distinct strings through five routes. Four of those routes had nothing to do with the rectangle.
Searching the raw PDF bytes for a leaked name returns nothing, because page text is Flate-compressed and written as hex digits. The absence of a match is not evidence.
Document properties — title, author, subject, keywords — are never displayed on the page and are shown by every PDF tool ever written.
Comments and sticky notes live outside the page's drawing program, so redrawing or flattening a page does not necessarily remove them.
A PDF can carry whole files inside it. Most readers keep the attachments pane closed by default, so an embedded spreadsheet can travel unnoticed for years.
Form field values are stored on the field object, separately from the page. Flattening the page's appearance does not always discard the value behind it.
The most common real-world leak is not a bad rectangle. It is the same name appearing on a page nobody remembered to treat.
Flattening a page to an image removes its text for good — and also removes the searchability of everything else on that page. That trade is the price of certainty.
A scanned page and a correctly flattened page look identical to a text extractor: both carry no text. Only one of them was ever meant to be readable.
FAQ
-
No. The file is read into memory in your browser and inspected there with self-hosted copies of pdf.js and pdf-lib. Given what this tool is for, that matters more than usual — a leak checker that uploaded your leaky document would be an odd thing to build. Open DevTools → Network and watch while you load a file.
-
It means the five ordinary routes returned nothing. That is a real and useful result — it is the state a properly redacted file is in — but it is not a proof of absence. A PDF can store data in places nothing enumerates, and this tool reads what standard libraries expose. If the consequence of being wrong is legal, treat a clean report as one check that passed rather than as a sign-off.
-
That page carries no extractable text — it is a picture of a page. Two very different things produce this: a page deliberately flattened during redaction, and a page that came off a scanner and never went through OCR. The tool cannot tell you which, and the difference matters, so it reports what it sees rather than guessing.
-
It is the pattern worth looking at hardest. It usually means somebody redacted deliberately and treated fewer pages than the document needed. Search for the removed name using the search box — if it comes back from a page that still carries text, the job stopped early.
-
That is expected even on a file that is leaking. Page text is compressed, and inside the compressed stream it is stored as hexadecimal rather than letters. On our own test file the leaked name appears zero times in the raw bytes and comes straight back out of any PDF library. A text-editor search is not a check.
-
No. It only reads. To remove page content use the PDF redactor, which flattens the pages you mark so the text underneath is gone; for title, author and keywords use the PDF metadata cleaner. Then bring the result back here and confirm.
-
Because a comment is not part of the page's drawing instructions. It is a separate object that points at a location on the page. Anything that rewrites how a page is drawn — including flattening it to an image — can leave that object completely untouched, which is why comments need checking separately from the page.
-
Not directly — this checks text routes. An image hidden under a rectangle is a real risk with the same cause, and the PDF image extractor is the tool for that: pull the embedded images out and look at them. If the original photograph is still in the file, it will come out whole.
-
It is bounded by your browser's memory rather than by a fixed limit, because everything happens locally. Documents of a few hundred pages are comfortable on an ordinary laptop. Very large scanned files take longer to walk because every page is inspected.
-
An owner password — the kind that restricts printing or copying — does not stop any of this, which is a useful thing to know about owner passwords. A file encrypted with a user password cannot be opened without it, so there is nothing to inspect until it is decrypted.
Related News
You may be interested in these recent stories from our newsroom.
-
AI-Generated Code Security Has Not Improved in a Year
Veracode tested more than a hundred models and found a 56 per cent security pass rate, flat year on year. Coding-specialised models were no...
-
A Second AI Security Body in a Fortnight. This One Caps Membership at Fifty.
The AI Trust and Security Consortium launched on 11 August with fifty seats and incidents shared under strict confidentiality - the opposite...
-
A Reporting Standard for Rogue AI Agents, Minus the Two Labs That Matter Most
Over 120 organisations have proposed SAFE, a common taxonomy and clock for reporting AI agent security incidents. It borrows aviation's mode...
Pick up where you left off
Stored only in this browser — never sent to our servers.