Skip to main content
PPDF123

Compress a PDF Under 1 MB

Compress PDF to 1 MB repacks a PDF with qpdf and lowers image quality level by level until the file fits under 1 MB. If it cannot, you get the smallest result reached.

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.

1 MB is the size people most often need: a mail server that bounces larger attachments, a learning system with a small cap, a government form. A brochure or a few scanned pages usually has the room to get there.

The target field is already filled with 1 MB. In this tool 1 MB is 1,048,576 bytes, so 1 MB sits just under 1 MB. The tool first repacks the file with qpdf, then re-encodes page images as JPEG through up to seven levels, from quality 75 and a 2000 px longest side down to quality 18 and 450 px, and stops at the first result that fits.

A photo-heavy file is the typical case: the tool steps down through stronger levels until the file fits, and the photos come out softer. A long photo book, or a scan stored as 1-bit or JPEG 2000 images, may not reach 1 MB, and in that case the result is the smallest the tool could produce.

Measured on freely licensed documents, the result depends on what the pages hold. Photographed JPEG pages shrink: a 32-page album went from 11.43 MB to 0.98 MB with a 1 MB target. Text and vector documents hardly change: a 15-page research paper went from 2.11 MB to 1.75 MB, the smallest it could make. Scans stored as JPEG 2000 or JBIG2 images, as many archive scans are, are skipped: a 38-page archive scan went from 2.23 MB to 2.22 MB, the smallest it could make. The table below lists every document.

The target is a goal, not a guarantee. If even the strongest level does not fit, you get the smallest result it reached, and the page count, page size, text and fonts are never changed. Image-only scans stay images, and 1-bit, CMYK, indexed, masked and transparent images are skipped, so a scan stored that way barely shrinks.

Image re-encoding is lossy. Open a few pages of the result before you send it, and keep the original. If a portal enforces a hard limit that the file cannot reach, Split by Page Count sends it in parts.

What happens at 1 MB: measured results

DocumentPagesOriginalResultUnder 1 MB?
Attention Is All You Need (arXiv 1706.03762) (CC BY 4.0)152.11 MB1.75 MBNo
IRS Form 1040 (Public domain, US government)2215.1 KB192.9 KBAlready under
Expedition 71 Crew Poster Brochure (NASA) (Public domain, NASA)27.21 MB773.4 KBYes
Album Or. 27.399, page 1 (Leiden University Libraries) (CC BY 4.0)1475.9 KB475.7 KBAlready under
Album Or. 27.399, pages 1-5 (Leiden University Libraries) (CC BY 4.0)51.41 MB597.7 KBYes
Album Or. 27.399 (Leiden University Libraries) (CC BY 4.0)3211.43 MB0.98 MBYes
Field letter (Internet Archive scan) (Public domain)382.23 MB2.22 MBNo

Measured on 2026-10-09 with this service's release build on freely licensed PDFs. KB and MB are 1,024 and 1,048,576 bytes. "Already under" means the original fit, so only the qpdf step ran. "No" rows show the smallest result the tool reached.

Features

  • Target size preset to 1 MB (1 MB)
  • Seven image levels, JPEG quality 75 down to 18, longest side 2000 down to 450 px; stops at the first that fits
  • Page count, page size, text, fonts and vector art stay unchanged
  • Returns the smallest result reached if the target cannot be met
  • Anonymous API at /api/v1/misc/compress-pdf with targetSizeMb

When to use this tool

  • Fit a PDF under a 1 MB email attachment limit
  • Upload a scanned document to a portal that rejects larger files
  • Send a lighter copy while keeping an uncompressed master

How do I compress a PDF to 1 MB?

  1. Upload the PDF that is over the limit.
  2. Leave the target size at 1 MB, or change it if the limit is different.
  3. Click Process and download the result.
  4. Check the file size against 1 MB and open a few pages to judge image quality.

Limits and edge cases

  • The target is a goal; the smallest result reached is returned
  • Strong levels make photos visibly softer
  • 1-bit scans, CMYK, indexed, masked and transparent images are skipped
  • Does not subset fonts or convert color spaces
  • Password-protected files need the password first

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

Will every PDF end up under 1 MB?
No. The tool lowers image quality level by level until the file fits, then returns the smallest result it reached. A file with little image content, or with image types that are skipped, can stay above the target.
Is 1 MB the same as 1000 KB here?
Not exactly. The tool counts 1 MB as 1,048,576 bytes, which is 1024 KB, the figure most operating systems show. A portal that counts in thousands may want a slightly smaller target, such as 0.95.
Does the text stay selectable?
Yes. Text, fonts and vector art are never changed. Image-only scans remain images.
What happens if my file is already under the limit?
It comes back with only the qpdf optimization applied and the content unchanged.
Can I use a different size?
Yes. Type any value from 0.05 to 1024 MB in the target field; the preset only saves you the typing.

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.