macos终端可借助sips、quartzfilter、ghostscript或pdfimages四种命令行方法压缩pdf:sips重采样图像;quartzfilter调用系统滤镜;ghostscript深度优化结构;pdfimages提取并重压图像后重建。

如果您在 macOS 系统中需要减小 PDF 文件体积,但又不希望依赖图形界面工具或第三方软件,则可通过终端调用系统内置的命令行工具实现无损或有损压缩。以下是几种可行的操作方法:
一、使用 sips 命令调整 PDF 页面分辨率(适用于含高分辨率图像的 PDF)
sips 是 macOS 自带的图像处理工具,虽不能直接压缩 PDF 结构,但可对 PDF 中嵌入的位图图像进行重采样,从而显著降低文件体积。该方法适用于以扫描件、截图或摄影图为主的 PDF。
1、打开“终端”应用。
2、输入以下命令,将 PDF 中所有图像统一缩放为 150 DPI 并保存为新文件:
sips -s dpiWidth 150 -s dpiHeight 150 --out compressed.pdf original.pdf
3、确认输出路径下生成了 compressed.pdf,并对比原文件大小变化。
二、使用 quartzfilter 通过 PDF Services 进行自动化压缩
macOS 的 Quartz Filter 功能可在命令行中模拟“预设压缩”行为,利用系统级 PDF 渲染引擎重新生成精简版 PDF,支持字体子集化、图像压缩与对象去重。
1、在终端中执行以下命令,调用“减小文件大小”系统滤镜:
/System/Library/Printers/Libraries/convert -f pdf -o compressed.pdf -d /System/Library/Filters/ReduceFilesize.qfilter original.pdf
2、若提示命令不存在,可改用 Automator 脚本封装方式:创建一个“运行 Shell 脚本”操作,内容为:
pdfinfo="$1"; base=$(basename "$pdfinfo" .pdf); /usr/bin/sips --match "/System/Library/Filters/ReduceFilesize.qfilter" "$pdfinfo" --out "${pdfinfo%.*}_reduced.pdf"
3、赋予脚本执行权限后运行:
chmod +x reduce_pdf.sh && ./reduce_pdf.sh original.pdf
三、使用 ghostscript(需手动安装)进行深度结构优化
Ghostscript 是跨平台的 PostScript/PDF 解析器,支持移除未使用的字体、压缩流对象、线性化及丢弃元数据等高级精简操作。其压缩效果通常优于系统原生工具,但需额外安装。
1、通过 Homebrew 安装 Ghostscript:
brew install ghostscript
2、执行高压缩比转换(保留文本可选性与基本矢量质量):
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=compressed.pdf original.pdf
3、如需更高保真度,将 /screen 替换为 /ebook 或 /printer;其中 /ebook 适合文字为主、含少量图像的文档。
四、使用 pdfimages 提取并单独优化嵌入图像
当 PDF 体积主要由未压缩 TIFF/JPEG 图像导致时,可先分离图像资源,再分别压缩,最后重建 PDF。此法可控性强,但需配合其他工具完成重建步骤。
1、列出 PDF 中所有嵌入图像信息:
pdfimages -list original.pdf
2、提取全部图像(默认保存为 PPM 格式):
pdfimages -all original.pdf extracted_img
3、批量将 PPM 转为高质量 JPEG 并压缩:
for f in extracted_img*.ppm; do convert "$f" -quality 80 "${f%.ppm}.jpg"; done
4、使用 Python + PyPDF2 或手动排版工具将优化后的图像重新组合为 PDF(此步骤不自动完成,需另行处理)。









