All Tools / Blog / 如何压缩PDF而不损失质量

如何压缩PDF而不损失质量

1 min read

一个本该2 MB的PDF却有20 MB——这是常见问题。邮件附件被退回,上传限制拒绝文件,没人愿意等10秒才能打开一份文档。好消息是:大多数过大的PDF都有很大的压缩空间,且不会出现可见的质量损失。

为什么PDF比需要的更大

盲目压缩之前,先了解文件大的原因:

  • 未优化的图像 — 从Word或Illustrator导出的PDF可能嵌入了全分辨率PNG或TIFF图像,而150 DPI的压缩JPEG在屏幕上看起来完全一样。
  • 嵌入字体 — 每个字体文件可增加1–5 MB。字体子集化(只保留实际使用的字符)可以大幅减小。
  • 重复对象 — 复制粘贴的元素或页面背景可能多次重复相同的资源。
  • 未压缩的流 — 旧版或导出不当的PDF完全跳过对象流的压缩。
  • 隐藏图层或元数据 — Illustrator和InDesign导出PDF时通常会嵌入完整的编辑数据。

知道原因,就能选对最有效的压缩方式。

方法一:从源文件重新导出

如果有原始文档(Word、Google Docs、Figma、InDesign),重新导出几乎总是最佳选项。选择"针对网页/屏幕优化"或"最小文件大小"——这些预设会自动将图像降采样到96–150 DPI并进行字体子集化。

Adobe Acrobat:文件 → 另存为 → 减小文件大小PDF。

LibreOffice:导出为PDF → 选择图像的"JPEG压缩"。

Word:文件 → 导出 → 创建PDF/XPS → 选项 → 位图压缩。

方法二:Ghostscript(命令行)

Ghostscript免费、跨平台,能产生最佳压缩比。它以目标DPI重新渲染PDF,重新压缩图像,并去除大部分元数据。

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

-dPDFSETTINGS 预设控制质量:

设置 目标DPI 适用场景
/screen 72 DPI 邮件、网页预览
/ebook 150 DPI 屏幕阅读
/printer 300 DPI 家用打印
/prepress 300 DPI + 色彩 专业印刷
/default 不变 仅无损流压缩

大多数场景下,/ebook 是最佳平衡点——比原文件小得多,但屏幕阅读仍然清晰。

方法三:img2pdf + pngquant(适合图像密集型PDF)

如果PDF本质上是一堆扫描图像,先压缩图像,再重新组合:

# 提取页面为图像(需要poppler)
pdftoppm -r 150 input.pdf page

# 压缩图像
pngquant --quality=65-80 *.png

# 重新组合
img2pdf page-*.png -o output.pdf

这个工作流对用600 DPI TIFF保存的扫描文档特别有效。

方法四:在线工具

没有命令行工具时,浏览器压缩工具可以完成这项工作。上传PDF,选择质量级别,下载结果——无需安装软件,如果工具在客户端处理,文件不会离开你的浏览器。

关键点:工具是在浏览器中处理文件(客户端),还是发送到服务器?对于合同或医疗记录等敏感文件,客户端处理更安全。

PDF的"无损"压缩究竟是什么意思

无损压缩删除重复数据、优化流、去除不必要的元数据,不改变任何像素值。结果与原文件看起来完全相同。这种方式可以使很多PDF减小20–40%——即使需要保留完整打印质量也值得做。

有损压缩通过降采样图像(降低分辨率)并应用JPEG压缩走得更远。对于300 DPI的印前PDF,降至150 DPI屏幕质量后,图像数据约为原来的25%——以牺牲打印质量换来巨大的文件缩减。

对于只会在屏幕上阅读的文件,150 DPI有损压缩完全够用。

实际压缩效果参考

原始内容 典型缩减
扫描文档(600 DPI TIFF) 缩小85–95%
InDesign/Illustrator导出 缩小60–80%
Word/Google Docs导出 缩小30–60%
已优化的PDF 缩小5–15%
纯文字PDF 缩小5–10%

如果某工具声称能将纯文字PDF压缩80%,要保持怀疑——根本没那么多可压缩的内容。

何时不应压缩

以下情况避免压缩:

  • PDF要送至专业印刷厂(他们需要300+ DPI)。
  • 文件包含数字签名内容——压缩可能使签名失效。
  • 归档法律或医疗文件(改用PDF/A格式)。

要点总结

  • 优先从源文件重新导出;这是无损的,通常也是最有效的。
  • Ghostscript的/ebook预设是最佳的通用命令行选项。
  • 仅供屏幕阅读的文件选150 DPI;需要打印则选300 DPI。
  • 无损压缩(流优化)可实现20–40%的缩减,质量零损失。
  • 敏感文件使用客户端工具,文件留在本地设备。