Compress PDF to 1MB
Set a byte ceiling and the tool iterates render DPI and JPEG quality until the PDF fits under it, keeping the page count and page dimensions identical.
This re-renders every page as an image.
Layout, page count and page size survive exactly. Selectable text, search, links, form fields and screen-reader output do not — they become pixels. If you need the text to stay text, use the preset-based PDF compressor instead.
canvas in a worker inside this tab, canvas.toBlob encodes the JPEG, and pdf-lib assembles the new document in page memory. The pdf.js worker is bundled with the site and served from toolchamp.app — no CDN fetch, no API call, no Pages Function. The download link is a blob: URL in the same tab.1 MB is the most forgiving of the common PDF upload ceilings, and that changes how the search behaves. Where a 500 KB target usually needs two or three render passes and ends up around JPEG quality 0.48, a 1 MB target frequently lands on the very first pass at the default 150 DPI and quality 0.72 — which means the output keeps noticeably more detail. The mechanism is the same either way: pdf.js re-renders each page to a canvas, canvas.toBlob encodes it as JPEG, pdf-lib reassembles the document at the original page dimensions in points, and the real byte length of the finished file decides whether another pass is needed. The trade is also the same and is worth reading before you start: the output's text is pixels, not text.
Key facts about Compress PDF to 1MB
| What 1 MB means here | 1,048,576 binary bytes, measured on the assembled PDF blob |
|---|---|
| Measured example | a 3-page A4 document with a full-width photo per page, 1.29 MB in, finished at 836,933 bytes |
| Passes that took | one — 150 DPI at JPEG quality 0.72 was already under the ceiling, so no quality was given up |
| Versus the 500 KB target | the same document needed three passes and ended at quality 0.48; the extra 500 KB buys roughly 50% more JPEG quality |
| No refinement needed | the first pass filled 80% of the ceiling, above the 78% threshold that would trigger a climb-back pass |
| What survives | page count, page dimensions in points, page order and the rendered layout |
| What does not | selectable text, search, links, form fields and annotations — each page becomes a single JPEG |
| Realistic page budget | 1 MB across 10 pages is about 105 KB per page, which holds a readable 150 DPI scan; across 100 pages it does not |
| Already under 1 MB | returned untouched, so a 900 KB document is not rasterised for nothing |
| Input caps | 100 MB and 150 pages — memory limits of rendering in a tab, not policy |
| Vector text documents | usually grow rather than shrink here; they are already small and rasterising them is the wrong tool |
What happens to your file
Nothing is uploaded. pdf.js parses your document inside a Web Worker in this tab, each page is rendered to a canvas element in the same tab, canvas.toBlob produces the JPEG, and pdf-lib builds the replacement PDF in page memory. The pdf.js worker is bundled with the site and served from toolchamp.app — no third-party CDN, no WebAssembly model download, no API request during the run. The result is a blob: URL in this tab that disappears when the tab does. A five-pass search therefore means five local renders and exactly zero network requests.
About this tool
- 1
Decide whether you can lose the text layer
Every page becomes an image. For a scanned document that already has no text layer this costs nothing; for a typed report it costs search, copy-paste and screen-reader access.
- 2
Keep the target on 1 MB
The page opens there, and 1 MB is where a single pass at 150 DPI usually suffices — the most detail this approach can retain at a common upload ceiling.
- 3
Add one PDF
Up to 100 MB and 150 pages. One document at a time, because each pass holds a rendered page's pixels in this tab.
- 4
Read the search log
It lists every pass with its DPI, quality and output size. A single green row means the first attempt already fit and nothing was sacrificed.
- 5
Confirm the verdict
Green states the achieved bytes and that they are under 1,048,576. Amber states the smallest size reached and what to change — usually removing pages.
- 6
Open the result before sending it
Check the smallest text on the busiest page. If it is crisp, the settings the search chose were generous; if it is soft, consider splitting the document instead.
| Input | PDF only, one file per run |
|---|---|
| Size ceiling | 100 MB in |
| Page ceiling | 150 pages |
| Output | PDF with the same page count and page dimensions, one JPEG per page |
| Target presets | 200 KB, 300 KB, 500 KB, 1 MB, 2 MB and 5 MB |
| Starting settings | 150 DPI, JPEG quality 0.72 — often the final settings at a 1 MB ceiling |
| Settings range | 40-200 DPI and quality 0.30-0.85 across at most five passes |
| Cancellation | the current pass can be cancelled and its output is discarded |
| Browser support | pdf.js 5.x — Chrome, Edge, Firefox, Safari 16.4+ |
| Encrypted PDFs | must be unlocked first; pdf.js refuses password-protected documents |
| Account or install | none — no signup, no watermark, no page limit behind a paywall |
- At a 1 MB ceiling the first pass often wins outright, so the output quality here is meaningfully better than the same document forced to 500 KB — use the larger ceiling whenever the destination allows it.
- If the search log shows two or three passes, your document is image-heavy; consider whether every page needs to be in the same file.
- A 1 MB target across more than about 30 scanned pages will look poor whatever the tool does — split first, compress second.
- Some portals mean 1,000,000 bytes by 1 MB rather than 1,048,576; if a form rejects a file this tool calls 0.98 MB, drop to the 500 KB preset or set a custom target.
- Text-heavy PDFs belong in the preset-based PDF compressor, which optimises the existing object structure instead of rasterising.
- Rotating scanned pages upright before compressing does not change the byte count but makes a lower-DPI result much easier to read.
- Byte ceiling in, render settings out
- Often a single pass at 1 MB, preserving more detail than tighter targets
- Per-pass search log with DPI, quality and resulting size
- Page count and page geometry preserved exactly
- Untouched passthrough for documents that already fit
- Amber miss state with the smallest achieved size
- University, immigration and HR portals that cap uploads at 1 MB per document.
- Attaching a scanned contract or report to an email system with a modest per-message limit.
- Uploading supporting documents to a grant or tender system with a per-file ceiling.
- Getting a scanned property or insurance document under a claims portal's limit.
- Shrinking an exported slide deck for distribution without splitting it.
- Preparing a set of scans for archival on storage where 1 MB per document is the agreed budget.
Related tools
View allWorks well with this6
Other PDF tools12
Updated