PDF Compressor

Shrink PDF file size by re-rendering each page at a chosen JPG quality and max width. Works on one file or a batch, runs entirely in your browser, and reports the exact before/after savings per file.

By · Indie developer · Updated April 2026

🔒 Your PDFs never leave your browser - 100% local processing
Compressing…
Advertisement

PDF compression, in plain terms

A PDF compressor reduces the file size of a PDF so it's easier to email, upload, or archive. This tool works by re-rendering each page and saving it as a JPG at a chosen quality and maximum width — the most reliable approach for scanned and image-heavy documents.

At a glance

  • Inputs. One or many PDFs — scans, reports, slide exports, anything image-heavy.
  • Quality presets. High (0.85), Balanced (0.65), or Max compression (0.4).
  • Max width. 900, 1200, 1600 pixels, or the original — caps pixel dimensions per page.
  • Transparent stats. Each file shows before size, after size, and percentage saved.
  • Batch output. Single file downloads directly; multiple files come back as a single ZIP.
  • Mobile-aware. Clamps render scale on phones and warns when a single file is over 60 MB.
  • Privacy. No uploads. Compression runs locally using pdf.js and pdf-lib.

How to compress a PDF

  1. Drop your PDFsDrag one or more PDFs into the upload area, or click the drop zone to browse. Each file shows up as a card with its name and size.
  2. Pick a quality preset and max widthChoose High, Balanced, or Max compression. Then set a maximum page width — 900 px for email, 1200 px for everyday use, 1600 px for archival, or Keep original to skip the cap.
  3. Compress and downloadClick Compress PDFs. Each file's card updates with before/after size and the percentage saved. Single file downloads directly, multiple files come back as a ZIP.

All processing happens entirely in your browser using pdf.js and pdf-lib. Your PDFs never reach any server — a good property when the files you're trying to shrink are contracts, statements, or medical records.

Advertisement

What is PDF compression?

A PDF can get large for several reasons: high-resolution scans, uncompressed photos, embedded fonts, or pages that were exported at print quality when screen quality would do. PDF compression reduces the file size of the output so it's easier to handle. There are two broad strategies: structure-level (re-compressing streams, dropping redundant objects, downsampling embedded images in place) and render-and-rebuild (rasterising every page as a JPG and repackaging). Structure-level approaches preserve selectable text and vectors but save less; render-and-rebuild is lossy but gives big, predictable savings.

Why this tool uses render-and-rebuild

This compressor takes the render-and-rebuild route because it works reliably in a browser and produces strong savings for the documents people actually want to shrink — scanned pages, slide exports, and image-heavy marketing PDFs. For those, savings of 60–90% are typical. For crisp vector PDFs with only text, structure-level compression elsewhere may make more sense; this tool will flag "negligible savings" and keep the original in that case.

Quality presets

High (0.85) keeps the result visually close to the input — good for documents you'll share with clients. Balanced (0.65) halves file size compared to High for a small quality cost and is the default for everyday sharing. Max compression (0.4) squeezes hardest; text stays legible but you'll see more JPG artifacts on zoom.

Max width

Max width caps the pixel dimensions of each rendered page. Lower widths shrink files dramatically because image size scales with the square of the width. 900 px is plenty for email. 1200 px is the everyday default. 1600 px is near-print. Keep original renders at the PDF's native page size — the biggest output.

Features of this free PDF compressor

  • Batch compressionDrop many PDFs at once; each is compressed in turn.
  • Three quality presetsHigh, Balanced, and Max compression cover every usual case.
  • Max width select900 / 1200 / 1600 px, or Keep original.
  • Per-file before/after statsExact bytes in, bytes out, and percentage saved.
  • Negligible-savings guardIf a file can't be shrunk meaningfully, the original is kept rather than bloated.
  • Mobile-awareClamps render scale on phones and warns at 60 MB+ inputs.
  • Single-file or ZIP outputOne input downloads directly; two or more come back as a ZIP.
  • Lazy-loaded enginepdf.js and pdf-lib only download after your first file drop.
  • No upload, no serverAll work happens locally in your browser.
  • No signup, watermark, or limitFree with no email gate, no trial, no “upgrade to remove watermark”.

When to compress a PDF

  • Hit an email attachment limitMost inboxes cap at 10–25 MB; a Balanced / 1200 px pass usually fits comfortably.
  • Upload to a portal with size capsUniversity applications, tax portals, and HR systems often reject anything over 5–10 MB.
  • Speed up a slow PDFHeavy image-based PDFs scroll sluggishly; rebuilt as JPG they fly.
  • Archive scanned documentsHigh-DPI scans often weigh 50+ MB — Max compression brings them under 10 MB.
  • Share slide exportsSlide PDFs with big background images shrink dramatically.
  • Save cloud storageCompressing a folder of scans can free gigabytes at once.
  • Send via chat appsWhatsApp, Signal, and Telegram all cap file sizes; Balanced / 900 px rarely hits the limit.
  • Hand off design proofsClient proofs don't need print resolution — 1200 px looks crisp on any screen.

Privacy: why a browser-based compressor is safer

The risk with server-side PDF compressors

Most "compress PDF online" tools upload your document to a server, process it there, and return a download link. The file sits on their infrastructure — often cached for the duration of the session, sometimes longer — and there's no way to verify what happens after you close the tab. That's a poor fit for anything you'd actually want to compress: contracts, statements, medical scans, or internal reports.

How this tool stays fully client-side

This compressor runs 100% in the browser. The pdf.js engine (for reading and rendering) and pdf-lib (for rebuilding) are loaded lazily the first time you drop a file. Every step after that is local: parsing the PDF, rendering each page to a canvas, encoding as JPG, embedding into a fresh PDF, and saving. Your document never reaches any server.

Your PDFs never leave your device — no uploads, no logs, no residual copies on any server.

Frequently Asked Questions

It re-renders every page of the input PDF to a canvas using pdf.js, encodes each rendered page as a JPG at the quality and maximum-width you choose, and then rebuilds a fresh PDF with those images. This approach reliably shrinks image-heavy PDFs and scans by an order of magnitude.
Yes, some. This is a lossy process — text is rasterised and images are re-encoded as JPG. At High (0.85) most documents look essentially identical on screen. Balanced (0.65) is a good default for sharing. Max compression (0.4) is best for archive or email when file size matters most.
If a PDF is already image-optimised — for example, a file from a modern scanner or one that's been compressed before — there's little left to squeeze out. The tool reports negligible savings and keeps the original file untouched rather than producing a larger output.
It caps the pixel width of each rendered page image. Smaller widths produce dramatically smaller files. 1200 px is the default — sharp on screen and in most prints. 900 px is great for web/email. 1600 px keeps near-print quality. Keep original rasterises at the PDF's native dimensions.
Yes. Drop several PDFs and the tool compresses them sequentially. A single input downloads directly as a compressed PDF; two or more are packaged in a ZIP with clear before-and-after stats in the result card.
Yes, but memory is tight on phones. The tool detects mobile devices, clamps the render scale to 1.5×, and warns you when a single input is over 60 MB. For very large inputs, use a desktop browser or drop the Max width to 900 px.