You have a PDF that will not go through. The email bounces at 25 MB, the upload form caps at 10, the portal says “file too large” and offers no other help. The document itself is fine, it is just fat.

Every Mac can already fix this. Nothing needs to be uploaded to a website, which matters, because the PDF that will not fit is usually a contract, a passport scan, or a portfolio.

Quick answer: Open the file in Preview, then File → Export, pick Reduce File Size in the Quartz Filter menu, and save. It takes ten seconds. If the result looks like a fax from 1994, that is expected, and Method 2 is the fix.

Pick the method that matches the job

SituationUse
One PDF, needs to be smaller nowPreview
Preview turned it to mushA custom Quartz filter
A folder of PDFs, no TerminalAn Automator Quick Action
You want to name the exact DPIGhostscript
Hundreds of files, text must stay selectablePicmal

Method 1: Preview (free, built in)

Already on your Mac, and the answer for most people most of the time.

Steps:

  1. Open the PDF in Preview
  2. File → Export…
  3. In the Quartz Filter pop-up menu, choose Reduce File Size
  4. Name the file, pick a destination, click Save

Save it under a new name. You want the original when this goes wrong.

The same Export sheet has three checkboxes worth knowing about: Create Linearized PDF, Optimize images for screen, and Save images as JPEG. Ticking the last two is a much gentler squeeze than the Reduce File Size filter, and on an image-heavy document it often gets you most of the way with nothing visibly ruined. Try those first if the file only needs to lose a third of its weight.

The catch:

Apple’s Reduce File Size filter is set for 2005. It scales every image to 50% and caps the longest side at 512 pixels, which is narrower than a phone screenshot. On a photo-heavy report it looks soft. On a scanned page, where the picture is the page, the text stops being readable.

Real numbers from a demo by MacMost: a 6.8 MB PDF came out at 55 KB. That is a 99% saving, and the file was useless.

Method 2: a custom Quartz filter (free, built in, keeps the quality)

The same machinery, with numbers you choose. This is the classic fix, it lives in an app you already have, and once it is made it shows up in Preview’s Quartz Filter menu forever.

Steps:

  1. Open ColorSync Utility (Applications → Utilities)
  2. Click Filters in the toolbar
  3. Find Reduce File Size, click the arrow-in-a-circle button on its right, choose Duplicate Filter
  4. Rename the copy something like “Reduce File Size (readable)”
  5. Expand Image Sampling and set Scale to around 75%, Max to 1280 pixels
  6. Expand Image Compression and set Quality to around 0.75
  7. Close ColorSync Utility

Now open the PDF in Preview, File → Export, and your filter is in the Quartz Filter menu next to Apple’s.

For a scan you want to stay legible, push Max higher, 2048 or more. Text survives resolution loss far worse than a photograph does.

The catch:

Five minutes of setup, and the settings are trial and error the first time. Filters are saved to ~/Library/Filters as .qfilter files, so if you would rather edit the numbers as text than fight the sliders, they are plain XML.

Method 3: an Automator Quick Action (free, built in, batch)

Preview does one file at a time. Automator turns your filter into a right-click menu item that takes as many PDFs as you can select.

Steps:

  1. Open Automator (it is in Applications)
  2. File → New, choose Quick Action
  3. Set Workflow receives current to PDF files, and in to Finder
  4. Add a Copy Finder Items action first, pointing at a folder like Desktop
  5. Search the action list for “quartz”, drag in Apply Quartz Filter to PDF Documents
  6. Pick your custom filter from its pop-up menu
  7. Save it as something like “Compress PDF”

Select any number of PDFs in Finder, right-click, and it is under Quick Actions.

The catch:

Apply Quartz Filter to PDF Documents rewrites the file in place. No copy, no undo, no “(compressed)” suffix. That is why step 4 exists, and skipping it is how people lose originals. Automator does warn you when you drag the action in and offers to add the copy step for you. Say yes.

Method 4: Ghostscript (free, the most control)

For when you want to say “150 dpi” and have something listen. Install with Homebrew:

brew install ghostscript

The standard compression pass:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook \
-dNOPAUSE -dQUIET -dBATCH -sOutputFile=small.pdf big.pdf

-dPDFSETTINGS is the only lever most people need. It is a bundle of settings, and the part that matters is the resolution it downsamples color images to:

PresetImages downsampled toUse for
/screen72 dpiSmallest file, screen only
/ebook150 dpiThe sensible default
/printer300 dpiSomething that gets printed
/prepress300 dpiPrint production, color preserved

Set the resolution yourself:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 \
-dDownsampleColorImages=true -dColorImageResolution=200 \
-dNOPAUSE -dQUIET -dBATCH -sOutputFile=small.pdf big.pdf

Every PDF in a folder:

for f in *.pdf; do
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook \
-dNOPAUSE -dQUIET -dBATCH -sOutputFile="${f%.pdf}-small.pdf" "$f"
done

The catch:

Ghostscript rebuilds the document rather than editing it. Text usually stays text, but bookmarks, form fields and some annotations can go missing, and complex layouts occasionally shift. Check the output before you send a signed anything. It is also the Terminal, which rules it out for a lot of people.

Method 5: Picmal (batch, text stays text)

Picmal is the Mac app I build. Drag PDFs in, pick a quality, click once.

Steps:

  1. Download Picmal from picmal.app
  2. Switch to the Compress tab
  3. Drag in your PDFs, or a whole folder
  4. Pick a preset, or set the quality yourself
  5. Click Compress

Why people reach for it:

  • It re-encodes only the images inside the document. Text stays selectable, links keep working, vector graphics stay sharp
  • The result is never larger than the original. If a PDF cannot shrink, the Saving column says Already optimized and your file is left byte-for-byte alone
  • Scans get their embedded images downsampled too, which is what takes a 25 MB lease to roughly 2 MB
  • That harder squeeze rebuilds the document, so if yours has links, bookmarks or form fields, Picmal warns you on the row instead of dropping them quietly
  • A folder of hundreds in one pass, roughly 50 PDFs in two minutes on Apple Silicon
  • Everything runs on your Mac. No upload, no account, no file size cap
  • Also in the Finder right-click menu, in Shortcuts, and as picmal-cli compress

$29 once, updates included, no subscription.

Best for:

Batches, scans that have to stay searchable, and not wanting to find out afterwards that the filter ate your contract.

Side-by-side comparison

MethodBatchQuality controlText stays selectableEase of usePrice
PreviewNoNoneYesVery easyFree
Custom Quartz filterNoGoodYesModerate setupFree
AutomatorYesGoodYesModerate setupFree
GhostscriptYesExactUsuallyTechnicalFree
PicmalYesGoodYesVery easy$29

What actually makes a PDF big

Worth thirty seconds, because it explains why one 40 MB file drops to 3 MB and another refuses to move at all.

Embedded images at print resolution. This is nearly always the whole story. A full A4 page of photo at 300 dpi is about 2480 by 3508 pixels, and if it was stored losslessly that single page can be 20 MB or more. As a JPEG at reasonable quality the same page is under 1 MB. Browsers store photos losslessly when they print to PDF, so a three-page web article can carry one photo that is 97% of the file.

Scanned pages. A scan has no text in it at all, only a picture of text. The picture is the page, so the only lever is resolution and JPEG quality, and pushing either too far is exactly what makes a scan unreadable.

Fonts. Embedded font subsets are tens to a few hundred KB. Real, but rarely the problem. If your PDF is 400 KB, this is why, and no compressor is going to help.

Everything nobody looks at. Attachments, revision history, page thumbnails, unused objects from whatever app exported it.

So: the methods above are all doing the same thing to the same thing. They re-encode the pictures. Apple’s Reduce File Size does it at 512 pixels, which is why your scan turned to mush. A custom filter and Ghostscript do it at a number you pick. Picmal does it while leaving the text layer untouched, which is why a compressed contract is still searchable.

If a PDF really is mostly text, none of this will help, and any tool promising otherwise is about to hand you a rasterized copy of a perfectly good document.

Common problems

The compressed file is bigger than the original. This happens with re-encoding tools when the source images were already compressed hard. Keep the original. It is also the reason Picmal compares the two and keeps the smaller one.

The text is no longer selectable. Something rasterized your pages, turning real text into a picture of text. Older PDF compressors did this by default, and printing to PDF from some apps does it too. Go back to the original and use a method that only touches the embedded images.

Preview’s Quartz Filter menu is empty or only has Apple’s filters. Filters live in ~/Library/Filters. If you made one in ColorSync Utility and it is not showing, quit and reopen Preview.

The scan is still 30 MB. Check the scanner, not the compressor. Many default to 600 dpi in color for documents that only ever needed 300 dpi grayscale. Rescanning at sane settings beats compressing a bad scan.

“Print to PDF” made it larger. Printing to PDF re-renders the document and can inflate it rather than shrink it, depending on the app. It is not a compression method.

The short version

  • One PDF, right now: Preview, File → Export, Quartz Filter → Reduce File Size
  • Preview ruined it: duplicate the filter in ColorSync Utility, Max 1280, Quality 0.75
  • A folder, no Terminal: an Automator Quick Action, with Copy Finder Items in front of it
  • You want to name the DPI: gs -dPDFSETTINGS=/ebook
  • Hundreds of files, text stays text: Picmal