Batch compress PDF on Mac without uploading to Adobe. Inside Zipic's in-house pdfoptim Rust engine and how it compares to Ghostscript on real samples.
If you’ve tried to batch compress PDF on Mac, you have probably bounced between four bad options. Adobe Acrobat asks you to upload to its cloud. Preview’s “Reduce File Size” filter is a fixed preset with no controls and often turns scans into mush. Online compressors will shrink the file, but your contract or design proof leaves the machine. Ghostscript works, but it’s a 100+ MB C toolchain with a flag manual.
Zipic does this differently. Inside Zipic is pdfoptim — our own PDF compression engine, written from scratch in Rust. Drop a PDF (or a folder of them) into the window, pick a compression level, and Zipic handles everything else locally. No cloud upload. No extra download. No flags.
The usual suspects:
The common thread: batch, size limits (attachments, uploads, storage quotas), and the file still has to be readable on the other end.
Three culprits, almost always: embedded images at their original DPI, entire font files dragged in for a handful of glyphs, and structural streams written carelessly by the authoring tool. Add them up and a routine business PDF lands in the 20–100 MB range — over Gmail’s 25 MB and Outlook’s 20 MB attachment caps, slow to preview, expensive to host.
pdfoptim attacks all three: it downsamples and re-encodes oversized images, subsets fonts down to the glyphs your document actually uses, and rewrites the PDF structure with modern streams. The work happens entirely inside the Zipic process on your Mac.
Three steps, two years:
That last step is what this article is really about: building our own engine so PDF compression behaves like the rest of Zipic — drop a file in, get a smaller file out.
The promise of “we wrote our own engine” only matters if the numbers hold up. Here is pdfoptim against Ghostscript 10.x on a six-PDF sample set covering text-only contracts, mixed CJK + image documents, photo-heavy reports, and scanned forms — all run at the equivalent of an ebook preset:
| Sample | Original | pdfoptim | Ghostscript |
|---|---|---|---|
| Text-only contract | 197 KB | 119 KB (−39.6%) | 122 KB (−38.1%) |
| Mixed CJK + light images | 605 KB | 436 KB (−27.9%) | 386 KB (−36.1%) |
| Photo-heavy report | 32.2 MB | 27.3 MB (−15.4%) | 27.1 MB (−15.9%) |
| Scanned form | 2.1 MB | 860 KB (−60.2%) | 956 KB (−55.7%) |
| Image-heavy slide deck | 19.6 MB | 10.0 MB (−48.7%) | 10.2 MB (−47.8%) |
| Photo book | 81.7 MB | 20.2 MB (−75.3%) | 20.9 MB (−74.5%) |
Across six samples, pdfoptim averages 44.5% reduction and Ghostscript averages 44.7% — effectively a tie, with pdfoptim ahead on four out of six samples. The point is not that we beat Ghostscript by a wide margin. The point is that a Rust engine bundled inside the app, with no external download and no flags to learn, can hit the same ratio Ghostscript took thirty years to reach.
The one sample where Ghostscript clearly wins is the CJK-heavy PDF — font subsetting across shared CJK fonts is still on our tuning list for the next Zipic update.
The workflow is the same as the rest of Zipic: configure a preset, then drop files. No separate “PDF mode,” no Start button.
Open Compression Settings at the bottom-left, set the level, and that’s it:
Rough size savings at each level (same PDF, different levels):
| Level | Best for | Typical savings |
|---|---|---|
| 1 | Print-shop submission, archival | 5–15% |
| 2–3 | Email, web distribution, everyday printing | 40–60% |
| 4–5 | Chat attachments, web previews, phone reading | 60–80% |
| 6 | Aggressive compression, visible quality loss | 70–85% |
How much you actually save depends on what’s inside: image-heavy PDFs gain the most; pure-text PDFs are already small and have less to give.
Drop a single PDF or a folder of them. Batch jobs run in parallel — ten files take roughly the time of the largest one.
A few practical tips for batch runs:
For automation, the same Zipic tools work on PDFs as on images: folder monitoring, Apple Shortcuts, and the URL scheme (zipic://compress?url=<path>&level=3&format=original).
You may have noticed Zipic doesn’t expose DPI thresholds, JPEG quality bands, font-subsetting strategies, or any of the other knobs Ghostscript has. That’s how we build the product. Every PDF is different; picking the right combination of those parameters takes experience most users don’t want to acquire. So we expose only the compression strength and let the engine pick the rest. The complexity stays inside the software, not on you.
Can I still edit, search, and print a compressed PDF? Yes. pdfoptim only touches images, fonts, and the file structure — it doesn’t change the text layer, annotations, form fields, bookmarks, or hyperlinks. The compressed PDF opens normally in Preview, Adobe Reader, and Word; text is selectable and searchable; forms still accept input. Print quality depends on level: levels 2–3 are indistinguishable from the original on letter-size paper; levels 4–5 may show softness if you zoom in on photographs.
Will Zipic upload my PDF anywhere? No. pdfoptim runs entirely inside the Zipic process on your Mac.
Why is PDF compression a Pro feature? PDF compression is the most engineering-heavy format Zipic supports. The Pro tier funds the in-house engines — pdfoptim alongside zipic-jpeg, pngoptim, gifoptim, and svgo-swift.
Can pdfoptim handle CJK PDFs? Yes. CJK fonts are typically Type0/CID composites; pdfoptim subsets the underlying fonts to the glyphs the document actually uses. CJK documents often see the largest absolute size reductions — most of the embedded font is unused glyphs.
Why did some of my PDFs barely shrink? Two common reasons: the PDF is already mostly text or vector content with little to compress, or it has been through a compressor before and is near its floor. Both are working-as-intended outcomes.
If you’ve been uploading PDFs to a stranger’s server to save 5 MB, stop. Download Zipic, set the level to 2–3, drag a folder of PDFs into the main window. pdfoptim handles the rest — locally, in seconds. PDF compression is a Pro feature; every download includes a full 7-day Pro trial. See pricing.

Zipic keeps Google's libwebp for WebP but built avifoptim after libavif failed to preserve iPhone HDR photos. The engineering trade-off explained.

gifski is a great video-to-GIF encoder, but it cannot batch, monitor folders, or compress existing GIFs. Here is the Mac gifski alternative for those jobs.

Need an SVG optimizer on Mac? Compress and optimize SVG files with Zipic — strip editor bloat, pick from six compression levels, and batch entire icon sets.