• Zero upload
  • Local CPU
  • Offline-capable
  • Auto cleanup
0 outbound requests

convert / Compress

Compress

Shrink PDF size by re-sampling images.

Add at least one PDF in the file tray to begin.

Methodology & Technical Transparency

Libraries used

  • pdf-lib — Core PDF construction and editing logic
  • pdf.js — PDF rendering and page rasterisation

Memory strategy

After each operation, URL.revokeObjectURL() is called immediately. All pdf.js document handles are destroyed via pdfDoc.destroy(). Workers are terminated on completion or component unmount.

We do not guarantee the permanent storage of files (as we don't store them). Processing of password-protected files is not supported locally.

Key Features

  • Three compression levels

    Low (lossless re-save), Medium (1.5× JPEG rasterization), and High (1× JPEG) — choose the right trade-off.

  • Size reduction stats

    After compression, the tool shows original size, compressed size, and percentage saved.

  • Lossless option available

    The Low level uses object-stream packing — text stays fully selectable and vector graphics are not degraded.

Common Use Cases

Valuable for shrinking PDFs before emailing (most services cap at 10–25 MB), uploading to document portals with size restrictions, or reducing storage footprint for archival.

Frequently Asked Questions

What is the difference between compression levels?
Low re-packs the file structure without quality loss. Medium and High rasterize pages to JPEG at progressively lower quality — smaller file, less crisp.
Will text stay selectable after compression?
Only with the Low level. Medium and High rasterize pages, converting text to pixels.
Is there a file size limit?
No server limit — your browser's available memory is the only constraint. Very large PDFs may take a minute on Medium or High.