Results on the bundled samples
| File | Original | Print quality (lossless) | Balanced (150 DPI) | Email + web (96 DPI) | Time (Balanced) |
|---|---|---|---|---|---|
| Board-deck.pdf 6 pages | 5.92 MB | 5.92 MB −0% | 399 KB −93% | 109 KB −98% | 236 ms |
| Q3-report.pdf 24 pages | 19 KB | 18 KB −6% | 18 KB −6% | 18 KB −6% | 9 ms |
| Appendix-A.pdf 8 pages | 7 KB | 6 KB −8% | 6 KB −8% | 6 KB −8% | 3 ms |
| Cover-letter.pdf 1 page | 2 KB | 1 KB −21% | 1 KB −21% | 1 KB −21% | 2 ms |
Sizes are the bytes of the PDF Bindery wrote. Text-only documents shrink only through structural cleanup (object streams, duplicate removal), which is why the small samples move by a few percent; the image-heavy board deck is where resampling and re-encoding do their work. Times are wall-clock on the machine that produced this page and will differ on yours.
What the engine does
- Lossless cleanup on every level. The file is rewritten with object streams, and identical streams — the same logo on every page after a merge, the same font subset from several source files — are kept once and re-referenced. Every pixel stays identical.
- Resolution targets, not guesses. Balanced resamples images so a full-page image lands at 150 DPI on the document’s largest page; Email + web uses 96 DPI. Small images and images already below the target are left at their size.
- Honest re-encoding. JPEG and 8-bit Flate images (RGB, grey, CMYK where the browser can decode it) are re-encoded with the browser’s JPEG encoder at a level-specific quality, and a new image is only kept if it is at least 8% smaller than the original — nothing is recompressed for its own sake.
- Untouched where it matters. Image masks, soft masks, 1-bit and indexed images, and anything the browser cannot decode are copied byte-for-byte.
Reproduce it
- Open Compress and load a sample from the links above (or “try the sample files” on the home page).
- Bindery computes all three candidates before you choose — the sizes on the cards are the real output sizes, not projections.
- Download any level and compare the byte count with this table. The engine is
compress.jsin the published app; the same file ships in thebindery-pdfnpm package.
Comparing with other tools
This page publishes Bindery’s own numbers only. Producing the equivalent figures for iLovePDF, Smallpdf or Adobe means uploading the sample files to their servers, which is exactly the step Bindery exists to avoid — so we leave that comparison to you: the samples are public, take a minute each, and the sizes they return are easy to put beside this table. The comparison pages describe how each service handles uploads and limits.
Limits
- The browser’s JPEG encoder is used; a WASM mozjpeg build would typically save a further 5–15% at the same visual quality and is on the roadmap.
- Images are resampled relative to the page size, not to their exact drawn size; an image drawn very small on a large page could be kept larger than strictly needed.
- Scanned documents that are one big JPEG per page compress well; vector-heavy files and text-only files barely change, and the result says so.