Compress PDF to 1MB
Email attachments, job portals and import tools often draw the line at 1MB. The target size is preset to 1MB here — upload and compress. Everything runs locally in your browser; your file is never uploaded.
Drop your file here
or choose from your device — no sign-up needed
Choose filesFiles are processed locally in your browser — never uploaded to any server
Details
Full-release pricing preview: $6.9/mo or $49/yr · 30-day email notice before billing starts · nothing is charged during the beta
How it works (3 steps)
Upload a PDF
The target size is preset to 1MB; change it if you need a different limit.
Automatic compression
Images are re-encoded page by page with a binary search on quality until the output fits under 1MB.
Download the result
Before/after sizes are shown. If 1MB is unreachable we report the minimum achievable size.
Popular searches
- PDF too large for email attachment
- compress PDF to 2MB
- resume PDF compression
FAQ
Which PDFs can reach 1MB?
Most image-based PDFs (scans, photo composites) can. Text-only PDFs are already tiny — if the file is under 1MB it is returned unchanged and your quota is not consumed.
Try it ↑Will the text stay sharp?
1MB is a generous target for documents up to ~10 pages, so sharpness is usually unaffected; for very long files consider splitting first.
Try it ↑How is this different from the generic target-size tool?
Same engine — the target is simply preset to 1MB so you skip the typing. You can change it to 200KB, 500KB or anything else at any time.
Try it ↑Does a digital signature survive processing?
No. Any change to a signed PDF (merging, compressing, watermarking…) invalidates the existing digital signature — that is the tamper-proof design of PDF signatures, not a limit of this site. Process first, then sign.
Try it ↑Can I trust the processing engine?
Yes — and you can verify it: the tool runs on open-source in-browser engines (pdf-lib, pdf.js, Tesseract OCR…) on your own device. Open DevTools → Network while processing and you will see no file upload requests.
Try it ↑