DocShop

// guide · Intermediate · 7 min read

Per-recipient watermarks: trace who leaked a PDF

Send the same document to several people, give each copy its own forensic ID, QR code, and hidden layers, then identify the source of a leaked copy.

Open the watermark tool →

The idea

A single watermark that says CONFIDENTIAL tells people not to share. It doesn't tell you who shared. If every recipient gets a copy with their own name and a unique tracking ID, a leaked copy points straight back to its source.

Visible marks can be cropped or cleaned up, so this workflow layers several marks. Someone would have to find and remove all of them.

Step 1: Set up the first recipient

Upload the document and fill in Recipient / name and Organization for the first person on your list. These values end up in the visible watermark, the QR code, the footer line, and the hidden layers.

Scroll to Forensic tracking ID. It looks like FV-MG4K2Z1Q-7HQX-M3PA-2WND: a timestamp plus 12 random characters. Click 📋 Copy if you want to paste it into your records right away.

Step 2: Choose visible marks that carry the ID

Pick Diag + QR, or pair Tiled with QR stamp. The QR code holds a small JSON record, so anyone who scans it sees where the copy came from:

QR payload
{
  "id": "FV-MG4K2Z1Q-7HQX-M3PA-2WND",
  "to": "Jane Doe",
  "org": "Acme Corp",
  "purpose": "Under NDA",
  "expires": "2026-12-31",
  "issued": "2026-09-29T14:03:11.482Z",
  "doc": "board-deck.pdf",
  "format": "cryptographic"
}

Every page also gets a small footer line in the bottom-left corner, whatever styles you pick:

Watermark | ID:FV-MG4K2Z1Q-7HQX-M3PA-2WND | To:Jane Doe | 2026-09-29

Step 3: Turn on the hidden layers

Under Invisible steganographic layers, enable the ones you want. They don't change how the document looks, but they survive if someone crops off the visible marks.

LayerWhat gets embeddedHow to read it back
PDF metadata injectionRecipient, organization, purpose, and tracking ID in the document properties (Title, Author, Subject, Keywords, Creator)Acrobat File → Properties, macOS Preview Tools → Show Inspector, or pdfinfo
White-on-white text layerA line of tiny, near-invisible text on every page starting with FVSTEG:, followed by the ID, recipient, org, purpose, and timestampSelect all and paste into a text editor, or run pdftotext
Micro QR at low opacityVery faint copies of the QR code tiled across the pageBoost contrast on a scan or screenshot in any image editor, then scan

Step 4: Download and log it

Click Continue →, then download both the PDF and the 📋 Audit report. The report is a JSON file named after the tracking ID, for example watermark_audit_FV-MG4K2Z1Q-7HQX-M3PA-2WND.json. It records the recipient, organization, purpose, expiry, styles, and which layers were applied.

Keep a simple ledger alongside the reports. A spreadsheet is enough:

Tracking IDRecipientOrganizationSent
FV-MG4K2Z1Q-7HQX-M3PA-2WNDJane DoeAcme Corp2026-09-29
FV-MG4K3B8R-KD2F-9QTE-XL5CSam LeeGlobex2026-09-29

Step 5: Repeat for each recipient

Click ← Back to edit. Your file and settings stay loaded. Change the recipient details, then click ↻ Regenerate next to the tracking ID before processing again.

Step 6: When a copy leaks

Work through the marks from easiest to hardest to remove:

  1. Read the footer at the bottom-left of any page for the ID and recipient.
  2. Scan the QR code with a phone camera to get the full JSON record.
  3. Check the document properties if you have the original PDF file.
  4. Extract the hidden text if the visible marks were removed.
  5. Enhance a screenshot or photo to reveal the faint micro QR codes.

With the PDF file itself, two commands from Poppler cover steps 3 and 4:

Terminal
# Document properties (metadata layer)
pdfinfo leaked.pdf

# Hidden text layer
pdftotext leaked.pdf - | grep FVSTEG

Install Poppler with brew install poppler on macOS or sudo apt install poppler-utils on Debian and Ubuntu. Take the ID you find and look it up in your ledger or audit reports.

Know the limits

Watermarks make leaks traceable and discourage them. They don't stop a determined person with time and tools. Someone could retype the content, or print, crop, and rescan it with enough care to remove every mark. Pair this with the usual controls: share only what's needed, set a clear expiry, and back it up with an NDA.