โ† Back to Blog
Guide

How Much Can You Compress a PDF? Measure Your Own Result

August 2026ยท 7 min readยท Published by Dajai Studio

The useful compression result is the one measured on the actual input, including growth or failure. These audited internal observations cover ten controlled synthetic cases and two real NASA documents. They show what happened to those files under a Node harness, not typical savings or a completed browser benchmark.

Measured bytes, including the inconvenient outcomes

Negative change means reduction; positive means growth. Percentage change is ((output bytes - input bytes) / input bytes) x 100, rounded here to four decimals. Rejected inputs have no output and therefore no measured percentage; they are not zero-percent successes.

Input typeInput bytesOutput bytesByte changeSize changeOutcome
Synthetic text-heavy PDF5597828359-27619-49.3390%Output reparsed
Synthetic image-heavy noise proxy23623832361500-883-0.0374%Output reparsed
Synthetic scan-style raster proxy724227722909-1318-0.1820%Output reparsed
Synthetic mixed text/image/vector PDF23636732362409-1264-0.0535%Output reparsed
Synthetic presentation-style pages69694325-2644-37.9394%Output reparsed
Synthetic AcroForm PDF42373024-1213-28.6287%Output reparsed
Synthetic already-object-stream control283092835950+0.1766%Output reparsed
Synthetic minimal PDF595725130+21.8487%Output reparsed
Invalid synthetic input58No outputNot measuredNot measuredRejected; no output
Encrypted synthetic input58576No outputNot measuredNot measuredRejected; no output
Real NASA Public Access Plan10812141077480-3734-0.3454%Output reparsed
Real Apollo 11 press kit archival scan2802861227891686-136926-0.4885%Output reparsed

What was run and how it was checked

The collector exercised the production compression handler through a simulated React/URL harness in Node v24.15.0 on Windows x64, using pdf-lib 1.17.1. The operation loads the PDF and saves with useObjectStreams enabled. File lengths and SHA-256 hashes were recorded, and successful outputs were independently reparsed using PDF.js 4.4.168. This was actual byte processing, but not an actual browser session or download test.

Why the synthetic and real rows are separate

The noise image is not a photograph, the synthetic scan proxy is not a physical scan, and the generated presentation is not an observed Office export. The two real inputs were downloaded unchanged: NASA's published Public Access Plan and the archival Apollo 11 press kit. They are supplemental real-document observations, not a representative population. NASA does not endorse PDFcraft; using these measurements does not grant permission to redistribute the source PDFs or review images.

What the reductions and growth mean

The synthetic text-heavy file lost 27,619 bytes, while the image-heavy noise proxy lost only 883 bytes. The already-object-stream control gained 50 bytes and the minimal control gained 130 bytes. The NASA policy file lost 3,734 bytes; the much larger Apollo scan lost 136,926 bytes, still less than half a percent. These differences are consistent with a structural rewrite whose usefulness depends on the input, not a fixed-percentage compressor.

Changes beyond byte size

Both real-document outputs lost linearization. PDF version and producer/modification metadata changed in the recorded real-document inspections, and PDF.js font warnings appeared before and after. Reopening, text extraction and geometry observations do not prove interactive text selection or universal preservation. The form row is a parsed fixture result, not evidence that its fields work in every viewer.

The visual review covered six pages only

Stored rendered images were reviewed by Codex at a 750-pixel page height: policy pages 1, 14 and 27, and Apollo pages 1, 127 and 254. At that scale the recorded review found no obvious new clipping, missing content or visible corruption. This is limited image review, not human or browser testing, pixel-perfect comparison or whole-document visual fidelity.

What remains NOT TESTED

  • Browser execution and downloads remain BLOCKED / NOT TESTED; no browser or device compatibility is established.
  • Interactive text selection, form interaction and signature preservation are NOT TESTED.
  • Real photographic-heavy inputs and an independently observed Office export are not represented.
  • Exhaustive visual inspection and universal lossless preservation are not proven.
  • No target-size optimization or explicit image downsampling was performed. Output can be unchanged or larger on other inputs.

Measure your own decision

01

Keep the original and record its bytes

Use a non-sensitive copy representative of your task. Do not substitute a different export between measurements.

02

Compare one processed output

Record input/output bytes and calculate the signed difference. Keep a failure as a failure, and a larger output as a larger output.

03

Inspect before replacing

Reopen the output and check the pages and features you need. A size reduction alone is not a reason to discard the original.

Try the same structural operation

Frequently asked questions

Can I expect the text-heavy percentage on my report?

No. That percentage belongs to one synthetic fixture. Its structure differs from other reports, and the two real samples had much smaller percentage reductions.

Were the invalid and encrypted inputs silently excluded?

No. Both appear as rejected cases with no output. No size change is calculated for either failure.

Try Compress PDF and see your file's real numbers

Processing limits and troubleshooting

Open this tool