The form said "PDF, maximum 100 KB". My file was a one-page letter exported from Word, and it was several times that. I ran it through the first online compressor I found, got a file under the limit, and only noticed later that I couldn't select a single word in it. The compressor had turned my page into a JPEG.
That's the trade-off nobody mentions on the button. Here's how I think about it now.
Start with the unit
"100 KB" can mean two different numbers:
- 100 × 1024 = 102,400 bytes (the binary meaning)
- 100 × 1000 = 100,000 bytes (the decimal meaning)
Your file manager may not agree with the form either. Windows Explorer counts 1 KB as 1024 bytes. macOS Finder counts 1 KB as 1000 bytes. So the same file can look like "99 KB" on one machine and "101 KB" on another.
Don't trust the rounded number. Look at the exact byte count:
- Windows: right-click > Properties. The "Size" line shows the bytes in brackets.
- macOS: Get Info shows the byte count next to the size.
- Terminal:
ls -l file.pdforstat file.pdf.
If you're under 100,000 bytes, you pass under either meaning.
Why a PDF is big in the first place
Before compressing anything, it helps to know what's taking the space. Usually it's one of these:
- Images. A logo pasted at 3000 pixels wide and then shrunk on the page still carries all 3000 pixels.
- Scans. A scanned page is a photograph inside a PDF. That's a different problem (I wrote it up separately for scans and the 200 KB limit).
- Fonts. Fully embedded fonts can add a lot, especially with several typefaces.
- Leftovers. Metadata, thumbnails and editing history from the app that made the file.
If you have poppler installed, this one command shows every embedded image and its pixel size:
pdfimages -list letter.pdf
A single row with a width in the thousands is usually your culprit.
The two ways a compressor can shrink a PDF
Lossless rewrite. Strip metadata, drop unused objects, pack the structure tighter. The text stays text. You can still select it, search it, and copy it. For a typed letter this often gets you under 100 KB on its own.
Rasterise. Draw each page as an image and save it as JPEG at whatever quality fits. This always "works" on size, which is why so many compressors do it. But the result is a picture of your document. No text selection, no search, and small print gets blurry. For a scan that's fine, because it was a picture anyway. For a text document it's a quiet downgrade.
The compressor I first used picked option two without telling me.
Fix it at the source if you can
The best compression is not making the big file at all.
- Word on Windows: File > Save As > PDF, then under "Optimize for" pick "Minimum size (publishing online)".
- Images in the document: resize them to the size they're actually shown before inserting. A logo shown 4 cm wide doesn't need to be 3000 px.
- Google Docs: File > Download > PDF usually gives a small file for text-only documents.
Ghostscript, if you're on a terminal
Ghostscript can rewrite a PDF and downsample the images inside while keeping text as text:
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook \
-dNOPAUSE -dBATCH -dQUIET \
-sOutputFile=letter-small.pdf letter.pdf
/ebook downsamples images to about 150 dpi. /screen goes lower (about 72 dpi) and gets visibly rough. Text stays selectable either way. The downside: you have to try settings and check the size yourself, and Ghostscript doesn't aim for a target.
On a Mac, Preview's File > Export with the "Reduce File Size" filter is built in, but it's aggressive with images and gives you no control over the result.
A page that tries lossless first and tells you what happened
I wanted something that aimed at a number and was honest about the method, so I made a compress-to-100 KB page on ToolOcean. (Disclosure: I make ToolOcean, so weigh that.) It runs in the browser, so the PDF stays on your machine.
What it does:
- The ceiling is preset to 100 KB, and it means 102,400 bytes. The page says so next to the control.
- It tries the lossless rewrite first. If that fits, you get a file where the text is still selectable.
- Only if lossless can't fit does it redraw the pages as JPEG. The result note says which path ran, so you know whether you're sending text or pictures.
On the page's own test file, a one-page Helvetica letter, the lossless path came out at 860 bytes. A real letter with a logo will be bigger, but it shows how small a text PDF can be when nothing heavy is inside.
If the note says the pages were rasterised and the document is something you'll need to search later (a contract, an offer letter), keep the original and send the small copy only where the form demands it.
When nothing gets it under the limit
If lossless doesn't fit and you don't want pictures, the content itself is too heavy for 100 KB. Things to try:
- Remove the image that's causing it, or replace it with a smaller version, and re-export.
- Split the document and upload only the pages the form asks for.
- Check whether the form takes a JPG instead. A single page as a JPEG at the right pixel size is often easier to fit than a PDF.
The gotcha
A file that Windows Explorer shows as "99 KB" is roughly 99 × 1024, about 101,000 bytes. That passes a form that counts 1 KB as 1024 bytes and fails one that counts 1000. When a form rejects a file that looks under the limit, this is usually why. If the limit is tight, aim for 95 KB and stop arguing with the unit.
Drafted with AI help, tested and checked by me.
Top comments (0)