X-Ray · how-to · never uploaded

Check a PDF for hidden text and metadata

Covering a line with a black rectangle in Preview is not redaction. The text operators can still sit in the content stream. X-Ray reads the bytes on this device and reports what is still in there.

  • Never uploaded
  • No size limit
  • No account
  • No watermark

What “redacted” files sometimes still contain

Classic failure: someone draws a black box in a consumer editor and hits Save. The box is a painted path or an image. The original Tj text is still in the stream, sometimes under the box, sometimes as white fill (1 1 1 rg) at the same coordinates. Copy-paste into a plain-text editor, or a screen reader, can still speak the salary number.

Incremental save makes it worse. PDF allows appending a new xref after the old %%EOF. Viewers show the latest objects. The previous wording is still in the file. X-Ray counts EOF markers and flags leftover generations. A “clean-looking” 12-page brief with three EOFs is a file that still has yesterday’s draft in it.

Embedded JPEGs can carry EXIF GPS. Document Info and XMP can still name Author, Company, and the original filename of “layoff-list-v3.pdf.” Attachments and /EmbeddedFiles are another hiding place. JavaScript and open actions are rare in office PDFs and worth treating as hostile if you did not put them there.

This is a scanner, not a cleaner

We do not strip the findings. Certified redaction removes content streams and then writes a new file. If you need a visual-only copy for a casual send, Compress at High flattens pages to images — that still will not impress a records officer. Run X-Ray on the output of whatever cleaner you use. The report downloads as text; the PDF is unchanged.

PDF tools FAQ

What does PDF X-Ray actually check for?
Leftover incremental saves, invisible and white text, text under painted boxes, JavaScript and open actions, attachments, form values, layers, identity metadata, and EXIF/GPS in embedded JPEGs.
Do you see the hidden text?
No. The scan runs in your browser. Analytics records that X-Ray ran, not the findings.