Skip to main content
PPDF123

Compress PDF Files

Compress PDF makes a PDF smaller by recompressing its internal streams and packing objects with qpdf. It does not downsample images and cannot promise a target size, so already-optimized or scanned files may barely shrink.

Drag and drop files here, or click to choose

Accepts PDF · up to 500.0 MB per file · up to 20 files at once

You can also paste a file with Ctrl/Cmd+V, or from the clipboard menu.

Compress shrinks a PDF by asking qpdf to recompress streams and pack objects into object streams. It is for email caps, LMS uploads, and portals that reject a file for being too heavy. It does not promise a percentage, and it does not downsample images.

The flags are `--compress-streams=y`, `--recompress-flate`, and `--object-streams=generate`. Already-tight files, or scans whose images are already JPEG, often barely move. A naïve office export with uncompressed streams usually shrinks more.

The Compress page has no quality slider. Linearize PDF is a separate tool (`/api/v1/misc/linearize-pdf`) for fast web view; it is not this job.

Text objects stay text. Image scans stay images. If you need the words from a scan, that is OCR to Markdown, not Compress. If you need to strip JavaScript or attachments, that is Sanitize.

Password-protected files are unlocked for you on this page once you enter the password; API callers run Unlock first. Broken xref tables may need Repair first.

Treat the download as a transmission copy. Keep an uncompressed master when the file is an archival original or a print proof.

Open a few pages after the job. Stream recompression should not change how a page looks; if something renders oddly, keep the original and try Repair before compressing again.

Uploads are temporary. We do not keep a compressed archive of your documents.

Features

  • qpdf stream recompression and object-stream packing
  • Does not downsample or re-encode page images
  • No optimize-level control on this page
  • Anonymous API at /api/v1/misc/compress-pdf

When to use this tool

  • Fit a PDF under an email or portal upload cap
  • Ship a lighter copy while keeping an uncompressed master
  • Tighten a naïve office export before attaching it

How do I compress a PDF to reduce its size?

  1. Upload the PDF that misses a size cap or feels heavy to send.
  2. Click Process. There is no quality slider on this tool.
  3. Download the result and compare byte size to the original.
  4. Open a sample of pages. If size barely moved, the file was already compressed.

Limits and edge cases

  • Will not downsample images; photo-heavy scans may barely shrink
  • Password-protected files need the password; API callers run Unlock first
  • Broken PDFs may need Repair before compress succeeds
  • Upload limit on this website: 500 MB per file, sent in chunks above about 95 MB. A single direct API request body is capped at 100 MB.

Examples

  • An office export with uncompressed streams often drops after object-stream packing
  • A 2 MB text report that was already compressed may only lose a few kilobytes

Privacy for this tool

Files are uploaded over HTTPS, processed in memory or a short-lived temporary directory on our servers, and deleted when your result is ready. We do not keep copies for later browsing, training, or advertising profiles. See the Privacy Policy for retention details and AdSense cookie disclosures.

Frequently asked questions

Why did my file barely shrink?
qpdf can only recompress streams and pack objects. Images that are already JPEG, or files that were already saved with object streams, have little left to give.
Does Compress downsample photos?
No. This path does not resample images. Size wins come from stream and object-stream packing.
Is this the same as Linearize PDF?
No. Linearize PDF is its own tool for page-at-a-time web serving. Compress does not linearize.
Will text stay selectable?
Yes when the source had text objects. Image-only scans remain images.
Can I compress a PDF to a specific size, such as 100 KB or 1 MB?
No. There is no target-size or quality setting, and the saving depends on the file. If a portal enforces a limit that Compress cannot reach, Split by Page Count sends the file in parts, and Remove Image deletes the pictures while keeping the text.

Last updated:

Call this from code

Every tool on this site is a plain REST endpoint - no account or API key needed for anonymous use. Built for AI agents and developers as much as for browsers.

curl -X POST "https://pdf123.xyz/api/v1/misc/compress-pdf" \
  -F "[email protected]" \
  -o output.pdf

Also available as an MCP tool for agent clients that speak Model Context Protocol (JSON-RPC 2.0 over POST /mcp). Full API reference

Use it from an AI agent

Skill

Claude Code, Codex, Cursor and other AI agents can run Compress for you with this skill: /skills/pdf123-compress.md

All agent skills

Files are used only for this processing job and deleted automatically afterward.