No upload · 100% private
All tools

Compress any PDF file
up to 90% smaller

Reduce PDF size directly in your browser — no servers, no registration, no watermarks. Batch compress up to 20 files at once.

🔒 100% Private ⚡ Instant 📄 Batch ×20 🌟 Up to 90% smaller

Drop your PDF files here

or click to browse · Up to 20 files at once

PDFMax ~100MB per file

Security: compression without server upload

VeloTools PDF Compressor never transmits document bytes over the network. After you select files, the browser reads them via the File API into an ArrayBuffer; PDF.js renders each page to a canvas in tab memory; pdf-lib assembles a new PDF from JPEG page images. No fetch, presigned URL, or cloud queue participates in the pipeline.

This is structural privacy, not a policy promise. With Wi-Fi disabled after the page loads, compression still runs — proof that work is local. For NDAs, HIPAA-covered records, and financial statements, no third party can access file content because no upload step exists. Server-based compressors (iLovePDF, Smallpdf) must copy your file to remote storage; VeloTools cannot, by design.

How to compress a PDF in 3 steps

  1. Drop one or more PDFs (up to 20), or pick files via the dialog. Choose a preset — Screen, Web, Print, or Archive — or tune DPI and JPEG quality manually.
  2. Click Compress All. Each file shows a live progress bar and before/after size. Processing is sequential to limit RAM spikes on large batches.
  3. Download individual _compressed.pdf files or use Download All (ZIP) — packaged locally with JSZip, never on a server.

Technical specifications

Max files per batch20 PDFs
Max file sizeNo hard cap — limited by device RAM (guide: ~100 MB per file on desktop)
Supported PDF versionsPDF 1.4 – 2.0; scanned, vector, and mixed content
Compression methodRasterize pages via PDF.js → JPEG encode → pdf-lib reassembly
PresetsScreen (72 DPI / 40%), Web (96 / 65%), Print (150 / 80%), Archive (200 / 90%)
Manual controlsDPI 72–300, JPEG quality 10–95%, grayscale, strip metadata, remove annotations
Typical savingsScanned PDFs 70–90%; text-only exports 10–25%
RAM usage~DPI² per page during render (96 DPI A4 ≈ 6 MB bitmap per page)
Network0 bytes of PDF content leave the browser
Encrypted PDFsRequire password at open — use Unlock PDF first if needed

DPI, JPEG quality, and why scans compress more than Word exports

Compression here is lossy rasterization, not in-place stream stripping. PDF.js draws each page onto a white canvas at scale = DPI / 72. The canvas is encoded as JPEG at your quality setting. pdf-lib embeds those JPEGs into a clean new PDF without legacy fonts, scripts, or redundant object streams.

Two independent levers. Lower DPI shrinks the canvas area (halving DPI cuts pixels by ~75%). Lower JPEG quality applies DCT compression on that bitmap. Presets combine both for sensible defaults: Screen maximizes size reduction for email; Archive keeps near-lossless output for legal archives.

Scanned vs vector text. A scanned page is already a photo — JPEG excels here (70–90% smaller). A Word-export PDF is mostly vector text and paths; rasterizing sharp edges produces JPEG-unfriendly high-contrast data, so savings are modest (10–25%). That is content physics, not a tool bug. Use grayscale on monochrome scans for an extra 15–25% reduction.

Smart compress path. For some image-heavy pages, the engine extracts embedded JPEG streams without full canvas render when safe — faster and preserves source quality on single-image pages. Complex layered PDFs fall back to full render.

Compress vs merge/split. Merge and Split use lossless copyPages. Compress intentionally trades fidelity for size. Merge first, compress second, is a common workflow for smaller email attachments.

Export to images. Need JPG/PNG per page instead of a smaller PDF? Use PDF to JPG — same PDF.js render path, image output instead of pdf-lib assembly.

Frequently asked questions

Does this compressor upload my files to a server?
No. PDF.js, pdf-lib, and JSZip run entirely in your browser. Disconnect the internet after load — compression still works. No API call carries PDF body data.
How much can I reduce PDF file size?
Scanned documents: 70–90% with Screen or Web. Photo-heavy presentations: 50–80%. Text-only exports: 10–25%. The tool shows exact before/after bytes per file.
Will compression reduce visual quality?
Yes — except Archive preset, every mode trades size for fidelity. Print and Archive are best for client deliverables; Screen is best for internal email and portals.
What is the difference between DPI and JPEG quality?
DPI sets render resolution (canvas size). JPEG quality sets encoder aggressiveness. Both multiply: lower either to shrink output. Presets tune both together.
Is there a page count or file size limit?
No hard limit — RAM is the constraint. A 100-page scan at Web preset typically works on a modern laptop. Very high DPI on 200+ pages may slow or warn on low-memory devices.
Can I compress multiple PDFs at once?
Yes — up to 20 files. Each gets a progress bar; Download All (ZIP) packages results locally via JSZip.
Why does my text-only PDF barely compress?
Vector text rasterizes to sharp edges that JPEG compresses poorly. Use Archive preset and grayscale for text-heavy docs, or accept modest savings from metadata stripping and clean reassembly.
Does it work offline?
Yes, after CDN libraries cache (~3 MB total). Airplane mode does not block compression, batch mode, or ZIP download.