Skip to main content

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.

No watermarkFree & unlimited
Target file size

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.

Nothing is uploaded. pdf.js renders each page to a 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

Key facts about Compress PDF to 1MB
What 1 MB means here1,048,576 binary bytes, measured on the assembled PDF blob
Measured examplea 3-page A4 document with a full-width photo per page, 1.29 MB in, finished at 836,933 bytes
Passes that tookone — 150 DPI at JPEG quality 0.72 was already under the ceiling, so no quality was given up
Versus the 500 KB targetthe same document needed three passes and ended at quality 0.48; the extra 500 KB buys roughly 50% more JPEG quality
No refinement neededthe first pass filled 80% of the ceiling, above the 78% threshold that would trigger a climb-back pass
What survivespage count, page dimensions in points, page order and the rendered layout
What does notselectable text, search, links, form fields and annotations — each page becomes a single JPEG
Realistic page budget1 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 MBreturned untouched, so a 900 KB document is not rasterised for nothing
Input caps100 MB and 150 pages — memory limits of rendering in a tab, not policy
Vector text documentsusually 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. 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. 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. 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. 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. 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. 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.

Specs & compatibility
InputPDF only, one file per run
Size ceiling100 MB in
Page ceiling150 pages
OutputPDF with the same page count and page dimensions, one JPEG per page
Target presets200 KB, 300 KB, 500 KB, 1 MB, 2 MB and 5 MB
Starting settings150 DPI, JPEG quality 0.72 — often the final settings at a 1 MB ceiling
Settings range40-200 DPI and quality 0.30-0.85 across at most five passes
Cancellationthe current pass can be cancelled and its output is discarded
Browser supportpdf.js 5.x — Chrome, Edge, Firefox, Safari 16.4+
Encrypted PDFsmust be unlocked first; pdf.js refuses password-protected documents
Account or installnone — 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.
Only the ceiling, and that changes the outcome more than it sounds. The measured example needed one pass at 1 MB and three at 500 KB, finishing at JPEG quality 0.72 rather than 0.48. The tighter target also triggers a refinement pass, because the first corrective attempt overshot downward to 375 KB and the tool climbed back to 489 KB to avoid throwing away quality it did not need to. Always use the largest ceiling the destination accepts: the difference in legibility on a scanned page at 150 DPI between quality 0.72 and 0.48 is easy to see.
Because text stored as font instructions is far smaller than a photograph of that text. A typed A4 page might be 25 KB as vector content and several hundred KB as a 150 DPI JPEG. This tool checks the original size first and returns the file untouched when it is already under the ceiling, so you will only see growth if you deliberately target a size smaller than a document that already fits. For text documents use the preset-based PDF compressor, which rewrites the existing structure rather than rasterising it.
The page geometry will. Page count, page size in points and the position of everything on the page are preserved exactly, because each JPEG is drawn to fill the original page box. What changes is resolution: at 150 DPI a printed page is noticeably softer than the vector original, and below about 100 DPI small print starts to break down. For a document that will be printed and read closely, use a larger ceiling or do not rasterise it at all.
No — the search applies one DPI and one quality to the whole document, because a per-page search would multiply the number of renders and make convergence unpredictable. If one page carries a large photograph and the rest are text, the honest approach is to split the document, handle the photo page separately, and merge the results. The PDF split and merge tools on this site both run client-side too, so the whole workflow stays in the browser.
No. pdf.js, its worker and pdf-lib are all shipped as part of this page from toolchamp.app, and the entire render-encode-reassemble loop runs in this tab on your CPU. There is no upload endpoint, no Cloudflare Pages Function and no third-party CDN request involved in a run. That is also why a long document can take a while on a phone: the work is genuinely being done on your device rather than on a server.
Those two requirements pull in opposite directions here, and the honest answer is that this tool cannot serve both. Options that do work: remove pages so the vector original fits without rasterising; use the preset-based PDF compressor, which optimises embedded images while leaving the text objects intact; or run the scan through the PDF OCR tool first so the document at least has a text layer, then accept a larger file. What you should not do is rasterise and then tell a recipient the document is searchable.
View all

Updated

We use anonymous analytics to improve ToolChamp. No personal data is stored or sold. Privacy Policy