100% on-device

Compress a PDF in your browser

Make a heavy PDF small enough to email. It is rebuilt on your own device — no upload, no watermark, no sign-up.

How it works

  1. Drop your PDF. It is opened inside this tab by pdf.js — the same renderer Firefox uses.
  2. Pick a target. Email (96 DPI) · Balanced (120) · Sharp (150), plus an optional grayscale pass that strips colour from scans. You see the trade before you run it.
  3. Download. Each page is rendered and re-encoded, the document is rebuilt with pdf-lib, and saved locally.

In our own test, a 1.86 MB image-heavy PDF came out at 735 KB — 61% smaller.

The bytes in a heavy PDF are images, and DPI is the lever

A page of text is a list of drawing operators plus a subset of a font: kilobytes. A scanned page is one image, and its cost is set by the resolution it was captured at - A4 at 600 DPI is roughly 4,960 by 7,010 pixels, close to 35 megapixels for a single page. Rendering that down to 150 DPI removes fifteen-sixteenths of those pixels.

This is why the target you pick - 96, 120 or 150 DPI - is effectively the whole decision, and why a text PDF barely moves. Its content streams are already Flate-compressed and there is nothing to downsample. If a text-only PDF is still large, look at embedded fonts instead: a fully embedded CJK face runs to megabytes on its own.

Rasterising a page loses more than selectable text

Links, form fields, comments, digital signatures and bookmarks are page objects rather than pixels, so none of them survive a rebuild into images. For a fillable form or a signed contract that is the wrong trade at any size. For a scan it costs nothing, because those objects were never in the file to begin with.

Scan settings decide how much there is to take. A text scan captured in 24-bit colour stores three channels of paper texture, and greyscale drops two of them - which is what the grayscale pass exploits. Watch a scan that was already saved as JPEG, though: it carries ringing around letter edges, and a low-quality re-encode amplifies it.

Questions

Is my PDF really not uploaded?

Yes — and not as a policy, as a fact of how it is built. There is no upload endpoint: the file is read straight into this browser tab and compressed by code running on your own machine. You can watch the Network tab while it works, or pull your Wi-Fi out mid-compression and it will still finish. Nothing is stored, nothing is queued, and there is no account.

Will the text still be selectable?

No — and this is the one thing to know before you use it. Each page is rendered to an image and rebuilt, so the result looks the same but its text is no longer selectable, searchable or copy-pasteable. That is exactly the right trade for a scan, a brochure or a photo-heavy deck, and the wrong one for a contract you still need to search. The tool says so on screen before you start, and a text-preserving mode is the next thing we are building.

My PDF barely shrank. Why?

Because there was nothing to take. A PDF that is mostly text is already small and highly compressed — the weight in a big PDF is almost always its images. When the rebuild would not actually beat the original, the tool refuses to pretend: it tells you, and hands back your original file untouched rather than a same-size file with worse text.

Does it work on scanned documents?

Those are the best case — a scan is already a stack of images, so there is no text to lose and the savings are the largest. Turning on grayscale usually takes a colour scan down again.

Password-protected PDFs?

They are rejected with a clear message rather than a cryptic failure. Remove the password in your PDF reader first, then compress.

Other formats

The same workbench handles all of them — pick a tab above, or start from its own page:

All six engines on one page →