Dynamic PDF watermarking

Stamp every served PDF with who downloaded it, from where, and when — per-recipient provenance for boards, legal, HR and clinics. AI tier.

With watermarking on, every PDF FileDeck serves is stamped — at the moment of download — with a footer naming who received it and when. A board pack, a salary review, a draft contract: if a copy ever turns up where it shouldn’t, the copy itself says whose it was.

FileDeck AI tier — included in all AI plans. See pricing

Turn it on

  1. Go to Documents → Settings → Downloads.
  2. Tick PDF watermarking.
  3. Save. That’s it — no per-document setup.

Every served PDF now carries a footer line on each page:

Downloaded by [email protected]yoursite.com – 2026-07-20 10:05 UTC

Logged-in users are named by their account email. Logged-out visitors are stamped with the site and time only — FileDeck deliberately doesn’t put IP addresses in documents (the activity log is the audit surface).

Where the stamp applies

  • Single downloads — watermarked documents are streamed (not redirected) so the stamp is always applied.
  • Zip downloads — every PDF inside a multi-select zip is stamped too, so a zip is never an unstamped side door.
  • View-only documents — the in-browser stream is stamped, so what a visitor reads already carries their name.

Only PDFs are stamped; other file types are served unchanged. Files attached from cloud storage that are served by the provider (rather than your server) are not stamped.

Honest framing: deterrence, not DRM

A watermark doesn’t make copying impossible — nothing does once a file reaches a browser. What it does is make every copy attributable, which changes behaviour: people treat a document differently when it carries their name. Pair it with access control to limit who gets the file at all, and view-only mode to remove the easy save path.

Requirements & fallback

Stamping uses the Ghostscript program on your server (the same dependency as PDF thumbnails, via the command line). Most hosts have it. If Ghostscript or PHP’s exec() is unavailable — or a stamp fails for any reason — FileDeck serves the original file and records a watermark_fail event in the activity log. A protection feature must never become an outage; the settings screen tells you if your server can’t stamp.

For developers

  • filedeck_watermark_text — filter the footer text (it is transliterated to ASCII for the PDF base fonts).
  • filedeck_gs_path — pin the Ghostscript binary path on unusual hosts, or return '' to disable.

Still stuck? Email [email protected].