How to compress a pdf file without losing quality
- Step 1Open the lossless compressor — Go to PDF Compress (Lossless). It is a single-file tool — one PDF in, one PDF out.
- Step 2Drop your PDF onto the page — Drag the file in or click to browse. The tool reads it locally with pdf-lib; nothing is sent anywhere. The header shows the file name, size, and page count once it loads.
- Step 3Let it run automatically — There is no 'compress' button or options panel for this tool — it runs the moment a valid PDF is loaded. Internally it copies all pages into a new document, clears Producer/Creator, and re-saves with compressed object streams.
- Step 4Read the result panel — When it finishes you get the rebuilt PDF and its page count. Compare the new file size against the original shown in the header to see how much the structure rebuild saved.
- Step 5Spot-check a page if you want proof — Open the output and the original side by side at 100% (and again at 400%) zoom. Because no pixels were touched, the pages are identical — this is just a sanity check, not a required step.
- Step 6Download and use anywhere — The output is a standard PDF that opens in Acrobat, Preview, Chrome, and every other reader. Download is direct from your browser; no account is needed for the free tier.
What this tool changes — and what it leaves alone
Lossless means the visible content is untouched. Every saving comes from structure, not from quality. Verified against the engine implementation (pdf-lib copyPages + object streams).
| Aspect | What happens | Visible effect |
|---|---|---|
| Page images | Copied through unchanged — not re-encoded, not downsampled, not converted to JBIG2 or JPEG 2000 | None — identical pixels |
| Text & vector graphics | Copied as-is; text stays selectable and searchable; lines stay crisp at any zoom | None |
| Embedded fonts | Copied as embedded; the tool does not subset or re-embed them (use the font subsetter for that) | None |
| Unused / orphaned objects | Dropped — copying pages into a fresh document leaves behind objects the old file no longer referenced | Smaller file |
| Object packing | Re-saved with compressed object streams (PDF 1.5+), Flate-packing many small objects together | Smaller file |
| Producer / Creator metadata | Cleared to empty strings on every run | Smaller file + minor privacy win |
Realistic lossless savings by source type
Approximate ranges. The big variable is how much dead structure the file carries. Already-optimised PDFs barely move; image-dominated scans barely move because lossless can't touch the pixels.
| Source PDF | Typical lossless reduction | Why | If you need more |
|---|---|---|---|
| Report exported from Word / Google Docs | 10-25% | App exporters leave redundant objects and uncompressed xref; packing helps | Already minimal loss — this is the right tool |
| Multiply-edited / multi-revision PDF | 20-40% | Incremental saves accumulate orphaned objects the rebuild discards | Run lossless first; then consider linearize for web |
| Designed PDF (InDesign, Illustrator) | 5-20% | Vector-heavy; gains come from packing and metadata, not images | Font subsetter if fonts are fully embedded |
| Acrobat-optimised PDF | 0-5% | Already uses object streams; little dead structure to remove | Lossy only, if size still matters |
| Scan / photo-heavy PDF | 0-10% | Size is in the image pixels, which lossless never re-encodes | Lossy compress — re-encodes images |
Cookbook
Before/after numbers from common PDFs. Sizes are illustrative; the tool reports the exact figures for your file.
A Word-exported 8 MB report
Word's PDF export carries uncompressed cross-reference data and leftover objects. Lossless packing tightens it with no visible change — the charts and text are byte-identical.
Input: quarterly-report.pdf 8.1 MB, 42 pages Action: drop on lossless compressor (auto-runs) Output: quarterly-report.pdf 6.0 MB, 42 pages Result: ~26% smaller, pixel-identical, text still selectable
A contract edited and re-saved a dozen times
Each incremental save in Acrobat appended objects; the originals were orphaned but stayed in the file. Rebuilding into a fresh document drops them.
Input: master-agreement-v12.pdf 4.4 MB, 18 pages Output: master-agreement-v12.pdf 2.7 MB, 18 pages Result: ~39% smaller — the savings are dead objects, not quality
A scan that barely shrinks (expected)
The file is one big image per page. Lossless never re-encodes images, so the file is already near its lossless floor. The honest outcome: little change.
Input: signed-scan.pdf 12 MB, 6 pages (image-only) Output: signed-scan.pdf 11.6 MB, 6 pages Result: ~3% — for a real drop use the lossy compressor (re-encodes images)
An already-optimised PDF (no-op-ish)
A PDF that Acrobat already ran 'Reduce File Size' on is mostly at its lossless minimum. You may see a tiny change from clearing metadata.
Input: optimized.pdf 1.2 MB Output: optimized.pdf 1.18 MB Result: ~2% — nothing wrong; there was simply no slack to recover
Verifying it really was lossless
Open both files at high zoom and confirm pixel-identical rendering, then confirm text still selects. Lossless keeps both.
1. Open original and output at 400% zoom → identical pixels 2. Try to select a paragraph in the output → text selects (still searchable) 3. Check fonts: Document Properties → Fonts → still embedded Confirmed lossless: appearance + selectable text preserved
Edge cases and what actually happens
The PDF is mostly scanned images
By designLossless compression deliberately never re-encodes images, so a scan-dominated PDF will barely shrink — the bytes live in the pixels, which are copied through untouched. This is not a failure; it is what 'lossless' guarantees. For a real reduction on scans, use lossy compress, which rasterises and re-encodes each page as a JPEG (and can hit a target size).
The file is already optimised
ExpectedIf a PDF already uses compressed object streams and carries no dead objects (e.g. it was run through Acrobat's optimizer), there is almost nothing for the rebuild to recover — you may see only a percent or two from clearing the Producer/Creator fields. The output is still valid; there was simply no slack.
Output is the same size or slightly larger
PossibleOn a small, already-tight PDF the object-stream overhead can occasionally net out flat or marginally larger. The pages are still preserved exactly. If size didn't drop and the file is image-heavy, that's the signal to switch to the lossy tool; if it's text-heavy and already small, it was already near its minimum.
The PDF is encrypted / password-protected
Loaded with ignoreEncryptionThe engine loads with ignoreEncryption: true, so it can open the file and rebuild it — but the rebuilt output is written without re-applying the original encryption or permissions. If you need the result to stay password-protected, remove the password first with Remove Password, compress, then re-apply protection. Do not assume the encrypted state carries through.
The PDF carries a digital signature
Signature invalidatedAny tool that re-saves a PDF — including this one — rewrites the byte stream, which breaks the cryptographic hash a digital signature covers. The signature will no longer validate. Always compress before signing. To check a signature's state, use Verify Signature; to sign after compressing, use Digital Signature.
File exceeds your tier's size limit
BlockedPDF tools cap input size by plan: Free 2 MB, Pro 50 MB, Pro+Media 500 MB, Developer 2 GB. A file over your limit is blocked before processing with an upgrade prompt. Since compression often targets large files, this is a common reason a big PDF won't load on the free tier.
File exceeds your tier's page limit
BlockedPage caps also apply: Free 50 pages, Pro 500, Pro+Media 2,000, Developer 10,000. A long document over the cap won't process. Split it first with Split by Range, compress the parts, or upgrade.
The PDF is corrupt and won't parse
ErrorIf pdf-lib can't load the document (truncated download, malformed xref), compression can't run — there's no valid object graph to copy. Repair the structure first with Repair PDF, then re-run the compressor on the repaired file.
Custom XMP / document-info metadata you wanted to keep
Producer/Creator clearedThe tool blanks the Producer and Creator fields by design. Other metadata copied with the pages generally survives, but if you depend on a specific Producer string (some archival pipelines do), note that it will be empty afterward. If full metadata control is the goal, use the Metadata Scrubber.
Expecting font subsetting to do the shrinking
Not this toolLossless compression here does not subset or strip fonts — fully embedded fonts are copied as-is. If a large embedded font family is the bloat, run the Font Subsetter, which trims each embedded font to only the glyphs the document actually uses.
Frequently asked questions
Does this really preserve quality exactly?
Yes. The tool copies every page into a new document without re-encoding images or rasterising text, then re-saves with compressed object streams. No pixel is altered and no vector is flattened, so the output renders identically to the original at any zoom. The size reduction comes from packing the file structure and dropping unused objects — not from lowering quality.
How much smaller will my PDF get?
Typically 10-30% for app-exported or multiply-edited PDFs, where the gains come from packing the cross-reference data and discarding orphaned objects. A PDF that Acrobat already optimised may shrink only a percent or two, and a scan-heavy PDF barely moves because lossless never touches the image pixels. The result panel shows the exact figure for your file.
Why did my scanned PDF hardly shrink?
Because a scan is essentially one big image per page, and the file's bytes live in those image pixels. Lossless compression copies images through untouched by design, so there's nothing for it to recover. To genuinely shrink a scan you need to re-encode the images, which is what lossy compress does — at the cost of selectable text and some image softening.
Are there any settings, quality sliders, or modes?
No. This tool has no options panel — it runs automatically the moment you drop a valid PDF, applying one fixed lossless rebuild. There's no quality slider, no scan-type selector, and no preset to choose. If you want control over a size target, image quality, or fonts, use the lossy compressor or the font subsetter instead.
Will text stay selectable and searchable?
Yes. Lossless compression preserves the original text objects, so selection, copy-paste, search, and accessibility/screen-reader text all keep working. This is the main reason to choose lossless over lossy for contracts, reports, and ebooks — the lossy tool flattens pages to images and loses selectable text.
Is my document uploaded anywhere?
No. The compression runs entirely in your browser using pdf-lib. The PDF's bytes never leave your device, which matters for the confidential reports and contracts people usually want to compress. The only thing recorded server-side, if you're signed in, is a usage counter — no document content.
Will the compressed file open in every reader?
Yes. The output is a standard PDF written with compressed object streams, a feature supported since PDF 1.5 (2003). Acrobat, Apple Preview, Chrome, Edge, Firefox, and mobile readers all open it normally. If you need to target a specific older PDF version for a legacy system, run the Version Converter afterward.
Does compressing twice make it smaller?
No useful benefit. Once the file has been rebuilt with object streams and stripped of dead objects, a second lossless pass has nothing left to recover and returns essentially the same size. Run it once. If you didn't get the reduction you needed, the file is either already optimal or image-heavy (use the lossy tool).
What happens to my digital signature?
It will be invalidated. Re-saving a PDF rewrites its bytes, and a digital signature covers a hash of those exact bytes — so any compression breaks it. Always compress before you sign. To re-sign afterward use Digital Signature, and to check a signature's status use Verify Signature.
What's the largest PDF I can compress?
It depends on your plan: Free allows up to 2 MB and 50 pages, Pro up to 50 MB and 500 pages, Pro+Media up to 500 MB and 2,000 pages, and Developer up to 2 GB and 10,000 pages. Files over your tier's limit are blocked with an upgrade prompt. Because compression often targets big files, the size cap is the most common blocker on the free tier.
When should I use lossy compression instead?
Use lossy compress when the PDF is image-dominated (scans, photos, exported slides) and you need a big size drop or a hard target like 1 MB. It re-renders each page as a JPEG, so it shrinks dramatically — but text stops being selectable. Use lossless (this tool) for text and vector documents where appearance and selectable text must be preserved.
Can I run lossless compression automatically in a pipeline?
Yes. pdf-compress-lossless is exposed to the @jadapps/runner: fetch its schema with GET /api/v1/tools/pdf-compress-lossless, pair the runner once, then POST the PDF to 127.0.0.1:9789/v1/tools/pdf-compress-lossless/run. The document is processed locally on your machine, so nothing leaves your network — useful for batch-shrinking a folder of reports before archiving or distribution.
Privacy first
All PDF processing runs locally in your browser using PDF-lib and pdf.js. No file is ever uploaded — only metadata counters are saved for signed-in dashboard stats.