Skip to content

Evidence methods guide

PDF Embedded File Redaction Review: Find Attachments Beyond the Visible Page

Review PDF file specifications, embedded-file name trees, file streams, associated files, attachments, incremental updates, and post-redaction evidence before sharing a PDF.

A PDF page can look redacted while the document still contains an embedded file, a file specification, a hidden object, or an earlier revision. The PDF Reference describes embedded file streams and file specifications, including the EmbeddedFiles name tree and EF entries. Start with an object inventory, trace every file specification to its stream or external reference, then compare the post-redaction object graph and visible rendering. This guide is PDF object guidance, not a redaction engine, legal determination, privacy certification, or permission claim.

Updated

On this page

Inventory the PDF object graph before editing

Record a neutral file ID, digest, PDF version, xref or object inventory method, page count, catalog reference, names dictionaries, annotations, streams, metadata objects, and incremental update markers if the parser exposes them. A visible page is one rendering surface, not a complete object inventory. Preserve the original file and the tool version used for the inventory.

The PDF Reference source record carries the verified sixth-edition date October 2006. The cited redaction guidance without a verified publication date uses 22 October 2026 as retrieval evidence, not as a publication claim. The source ledger records these distinctions.

Inventory the PDF object graph before editing (table)
Object evidenceRecordStop if
CatalogObject ID and names entriesCatalog is repaired without a raw copy
Name treeEmbeddedFiles nodes and leavesOnly viewer-visible attachments are listed
File specificationName, EF references, AF relation, external targetFilename is treated as unique identity
StreamObject ID, filters, length, digestDecoded bytes replace stream evidence
AnnotationSubtype, action, file referenceAttachment annotations are skipped
RevisionIncremental sections and xref stateEarlier bytes are assumed unreachable

Use a synthetic PDF object ledger for public review. Do not paste real filenames, document text, embedded bytes, or private metadata. An unreferenced object may still matter to a forensic or redaction workflow, so record how reachability was determined.

Trace every file specification to its embedded or external target

The Adobe Systems Incorporated, (opens in a new tab) describes direct embedded file streams through a file specification EF entry and document-level association through the EmbeddedFiles name tree. Follow both directions: name tree to file specification to EF stream, and file specification or annotation to any stream or external target. Do not deduplicate by filename alone.

Trace every file specification to its embedded or external target (table)
Trace fieldSupportsOpen question
Name tree keyA name-to-file-spec mappingAre duplicate keys normalized?
File nameDisplay or path stringDoes another file specification reuse it?
EF entryEmbedded stream referenceIs F, UF, or another entry used?
AF relationshipDeclared associated-file roleDoes the role match the object?
External referenceFile specification target outside the PDFIs it available or allowed to follow?
Attachment annotationPage-level file associationIs it also in the document name tree?

Synthetic embedded-file ledger

Trace every file specification to its embedded or external target code example, JSON
{"catalog":"obj-fixture-catalog","embedded_files":[{"name":"fixture.txt","file_spec":"obj-fixture-filespec","ef_stream":"obj-fixture-stream","stream_digest":"fixture-digest","af_relationship":"fixture-role"}],"annotations":[{"page":"fixture-page","file_spec":"obj-fixture-filespec"}],"external_targets":[],"decision":"trace-all"}

Compare visible redaction with hidden and historical content

The redaction guidance says hidden information can include metadata, comments, attachments, scripts, layers, embedded content, and content from previous saves. Turn that broad list into a bounded checklist: visible page text and images, annotations and actions, metadata, name trees, embedded streams, associated files, forms, layers, and incremental revisions. Record what the chosen tool inspected and what it cannot inspect.

Compare visible redaction with hidden and historical content (table)
Review surfaceRecordHold when
Visible pageRendered before and afterOverlay only obscures underlying text
Content streamObject references and changed operatorsOld text remains in a stream
AnnotationsRemoved, retained, or rewrittenAction points to a hidden file
MetadataDocument and XMP stateOne metadata packet is assumed to be all
Embedded contentName tree and stream inventory after editAttachment remains reachable
Previous revisionsIncremental sections and xref stateOlder bytes remain in the file

Write a bounded post-redaction verification report

Compare original and output digests, page count, visible rendering, object references, embedded-file inventory, metadata inventory, annotation inventory, and file size. A smaller file is not evidence that every hidden object was removed. A viewer that shows no attachment is not evidence that no file specification or stream exists.

Write a bounded post-redaction verification report (table)
ResultRecordDo not claim
Removed objectObject ID and verification methodAll copies of the content are gone
Remaining attachmentName, relation, stream digest, locationVisible pages are safe to share
Unreachable streamReachability algorithm and scopeUnreachable means deleted
Incremental bytesRevision offsets and tool behaviorPrevious saves were overwritten
Rendering checkViewer, version, and screenshotsRendered view proves object removal
Tool limitationUnsupported features and next actionA pass is a legal clearance

Stop before calling a PDF redacted

Stop conditions

  • Stop if the catalog, name trees, file specifications, streams, annotations, or revisions were not inventoried.
  • Stop if a filename is treated as a unique attachment identity.
  • Stop if a viewer overlay is the only evidence that page content was removed.
  • Stop if metadata, scripts, layers, forms, embedded files, or previous revisions are outside the tool scope.
  • Stop if output and source digests, object counts, and tool limitations are not recorded.
  • Stop before opening an embedded file when it is untrusted or contains private content.

Pair this worksheet with the data provenance log for source and transformation history and the data card template for collection context. A PDF object report does not prove legal redaction, privacy clearance, ownership, or permission.

For a supported non-health collection, after the owner has authority to describe the scope and a controlled metadata packet, the qualified document-data appraisal request path may be a preparation step. It does not redact PDFs, certify deletion, inspect malware, create a quote, match a buyer, or grant a license.

Sources

  1. Adobe Systems Incorporated: PDF Reference, sixth edition: Adobe Portable Document Format version 1.7 (opens in a new tab)
  2. Adobe: How to redact a PDF (opens in a new tab)

Use the document-data appraisal path after the PDF packet is organized.

It does not redact PDFs, certify deletion, inspect malware, create a quote, match a buyer, or grant a license.