PDF Compressor

Compress a PDF: pdf.js renders every page, pdf-lib rebuilds a smaller file. Pick a quality preset, see the before and after sizes and download.

All processing happens locally in your browser. Your PDF never leaves your device.

Compress Options

Drop a PDF here or click to browse — one PDF at a time

Quality preset

How PDF Compression Works

This tool takes the rebuild-from-images route: Mozilla's pdf.js renders each page to a canvas, the canvas is re-encoded as JPEG, and pdf-lib assembles the results into a new PDF. Everything runs locally in your browser — there is no upload step.

Three Presets
High quality renders pages at 1.5× scale and JPEG quality 0.82; Balanced at 1.0× and 0.70; Smallest file at 0.75× and 0.55. Higher scale and quality mean more detail retained and less shrinkage.
Honest Limits
Pages are flattened to images, so selectable text, searchable content and form fields are lost. This method shines on scanned or image-heavy PDFs; text-heavy PDFs may barely shrink or even grow — run a preset, check the saved figure, and try another before deciding. Nothing is uploaded, and very large files are constrained by your browser's memory.
Page Count & Megapixel Estimate
On load, the tool reports how many pages your PDF has and the approximate megapixels per page at Balanced scale, so you know how much raster data the pipeline will process before you press Compress.

Preset Reference

PresetRender scaleJPEG qualityBest for
High quality1.5×0.82Scans you still want crisp on screen
Balanced1.0×0.70Most scanned and image-heavy PDFs
Smallest file0.75×0.55Attachments and upload portals with size caps

Frequently Asked Questions

How does this PDF compressor actually work?

It rebuilds your PDF from page images: pdf.js renders every page onto a canvas at the preset's resolution, each canvas is re-encoded as a JPEG, and pdf-lib assembles the JPEGs into a new PDF sized to the original pages. That raster pipeline is why scanned and image-heavy PDFs shrink so reliably.

Is anything uploaded to a server?

No. Parsing, rendering, re-encoding and assembly all run in your browser with pdf.js and pdf-lib. Your PDF never leaves your device and no network request carries your file content.

Will my PDF lose selectable text or form fields?

Yes. Because every page becomes a flat image, text selection, search, links and interactive form fields are lost. The method shines on scanned documents, which have no selectable text to begin with — for searchable text PDFs consider a lossless optimizer instead.

Why did my file get bigger instead of smaller?

Text-heavy or vector-graphic PDFs are already extremely compact, so a full-page JPEG of each page can end up larger than the original. The page-count and estimated megapixel readout hint at this: run another preset, and if it still grows, keep your original file.

Which quality preset should I choose?

High quality (render scale 1.5, JPEG quality 0.82) keeps the most detail. Balanced (scale 1.0, quality 0.70) is the right first try for most scans. Smallest file (scale 0.75, quality 0.55) pushes shrinkage hardest at visible softness. Compression estimates nothing up front — only running a preset shows the real output size, so use Try another preset to compare them without re-uploading.

When Not To Use This Tool