Motivation
PDFs routinely leak far more information than users realize — author names, software versions, GPS data from scanned images, hidden layers, embedded files, and even recoverable text from prior edits. Before sharing a document publicly, users need a reliable, transparent way to detect and strip this hidden data, not just the surface-level "Author/Title" fields most tools cover.
Acceptance Criteria
Technical Notes
- Library:
pikepdf (Python, wraps QPDF) — gives direct object-structure access that Ghostscript's CLI doesn't expose well
- Critical gotcha: if the PDF is digitally signed (
pdf.Root.AcroForm + signature fields present), any byte-level change breaks the signed hash range and invalidates the signature — must detect and warn before scrubbing
- Font metadata removal is harder than the rest; may need to fall back to Ghostscript subsetting rather than pikepdf alone
Suggested UX Flow
- Scan and show a checklist of what was found — transparency builds trust
- Let user select all or pick specific categories
- One-click "Scrub All" for the common case
- Show a diff summary after scrubbing
Priority
enhancement pdf privacy security
Motivation
PDFs routinely leak far more information than users realize — author names, software versions, GPS data from scanned images, hidden layers, embedded files, and even recoverable text from prior edits. Before sharing a document publicly, users need a reliable, transparent way to detect and strip this hidden data, not just the surface-level "Author/Title" fields most tools cover.
Acceptance Criteria
Technical Notes
pikepdf(Python, wraps QPDF) — gives direct object-structure access that Ghostscript's CLI doesn't expose wellpdf.Root.AcroForm+ signature fields present), any byte-level change breaks the signed hash range and invalidates the signature — must detect and warn before scrubbingSuggested UX Flow
Priority
enhancementpdfprivacysecurity