Drop a PDF. Get it back with a watermark on every page. O(1) — any file size.
or click to browse · No file size limit
| File | Size | Pages | Synapse | pdf-lib | Speedup |
|---|---|---|---|---|---|
| Merged document | 66.8 MB | 4,265 | 484 ms | 13,707 ms | 28× |
| ERP-2024 (US Gov) | 5.1 MB | 487 | 91 ms | 1,590 ms | 17× |
| Stress test | 1.3 GB | 156 | 747 ms | 2,906 ms | 4× |
| Scanned contract | 102 MB | 100 | 65 ms | 2,270 ms | 35× |
| IRS W-9 | 70 KB | 6 | 5 ms | 22 ms | 4× |
All output validated by qpdf (C++) and mutool (C). Don’t trust the table — drop your own PDF above and race it yourself.
| Feature | Status | Details |
|---|---|---|
| PDF versions | ✅ | 1.0 – 2.0 (all standard structures) |
| XRef streams (PDF 1.5+) | ✅ | Binary xref + FlateDecode + PNG predictor |
| Object streams | ✅ | Compressed objects extracted transparently |
| Max file size | ✅ | No limit — stress tested on 4 GB files |
| Max pages | ✅ | No limit — validated on 25,638-page documents |
| Scanned documents | ✅ | Image-based PDFs work — watermark overlays on top |
| Multi-revision PDFs | ✅ | /Prev chain walking — all revisions merged |
| Indirect resources | ✅ | Indirect /Contents, /Resources, /Font dicts |
| Previously watermarked | ✅ | Idempotent — stack watermarks without corruption |
| Encrypted / password-protected | ⚠️ | Detected and reported — decrypt with qpdf first |
| Digitally signed PDFs | 🔜 | Signature-preserving watermark — Phase 3 |
| Other formats (DOCX, images) | — | PDF only — by design |