Loading the editor…

Compress a PDF

Two options, and the dialog is candid about both. Tidying up rebuilds the file with compressed object streams and drops orphaned data, changing nothing visible. Flattening to images shrinks scans dramatically but makes text unselectable, so it is the wrong choice for a text document.

How to do it

  1. Open the PDF.
  2. Open the compress panel and pick an option.
  3. Download, and check the before-and-after size it reports.

Why nothing is uploaded

Most online PDF tools work by sending your file to a server, editing it there, and sending it back. That means contracts, medical records, bank statements and passports all end up on someone else's machine, and you are trusting a privacy policy about what happens next.

This editor does the work in your browser instead. The PDF is read by this tab, rendered with pdf.js and written back out with pdf-lib, both running as ordinary JavaScript on your own device. There is no upload endpoint, because there is no server doing any of this. Once the page has loaded you can disconnect from the network entirely and everything still works.

Questions

Is my file uploaded?
No. Everything happens in this browser tab, on your own device. There is no upload endpoint and no server-side processing, so the file never leaves your machine — you can disconnect from the network after the page loads and it still works.
Why did my file barely get smaller?
Because it was already compressed. PDF content streams and embedded fonts are Flate-compressed as a matter of course, so a document exported from a word processor has very little slack. Scans are mostly image data and are where real savings live. A tool advertising a fixed percentage regardless of what is in your file is guessing.
Will compressing lose quality?
Tidying up is lossless and changes nothing you can see. Flattening to images is lossy by definition — that is the trade it makes, and it is labelled as such.

Related tools

Part of messy-ui. Free, open source and account-free — see also the countdown timer.