Compress a PDF without uploading

Most online PDF compressors upload your file to a server. This page explains why true high-ratio compression is hard to do in a browser, and walks through three practical workarounds that keep your file local and still cut its size — using only the tools on this site.

  1. Remove the pages you don't need. The fastest win. Open the PDF, identify pages you can drop (blank scans, signature pages, appendices), and use the Remove pages tool. Often a 'large' PDF is large because of one or two heavy pages.
  2. Split into smaller PDFs. If the file is too big for an email attachment, the Split PDF tool lets you cut it into halves or per-chapter ranges. Each part fits the limit individually.
  3. Round-trip through JPG at lower quality. For image-heavy PDFs (scans, photo reports), use the PDF to JPG tool at Medium quality, then rebuild a PDF with the Images to PDF tool. The output is dramatically smaller because each page becomes a recompressed JPG.

Your files stay on your device

All processing happens locally in your browser using JavaScript. We never upload, store or look at your files.

Which workaround fits which file

A 30 MB scanned report

Almost certainly photo-heavy. The JPG round-trip at Medium quality typically produces a 4–8 MB PDF that still looks fine on screen. Acceptable for sharing, not for archival print.

A 50 MB textbook PDF

Splitting per chapter gives you 5–10 PDFs you can browse separately. Keeps the original quality intact, just splits the bytes across files.

An 80-page contract with three signature pages

Removing the three blank-back signature pages can drop several MB. Combine with splitting if you still need to email it under a 25 MB limit.

A vector-only PDF (e.g. exported from Figma) that's still big

Browser-only tools can't re-encode vector content efficiently. Re-export from the source app with image downscaling enabled — that's the right place to compress.

Honest limits of browser-only compression

Why can't a browser just 'compress' the PDF?

True PDF compression re-encodes embedded images and subsets fonts. The libraries that do this well (Ghostscript, qpdf with image filters) are large native binaries that are not practical to ship as JavaScript. Browser-side libraries can rewrite the PDF structure but rarely cut size meaningfully on their own.

Round-trip through JPG made the text fuzzy

The round-trip rasterises every page, including text — text in the output is now an image. Use this trick only when the source is already image-heavy (scans, photo PDFs). For real-text PDFs, prefer 'remove pages' or 'split' instead.

I really need server-side compression

Then use a service that does it transparently and tells you what it does with your file. The point of this page is honesty: if you can't accept the upload, the workarounds above are the realistic options. There is no magic browser-only compressor.

Email still rejects the attachment

Most providers cap at 20–25 MB. If splitting doesn't help, send the PDF through a file-share link service instead — most modern email clients have a 'large attachment' option that creates a download link automatically.

Frequently asked questions

Tools used in the workarounds