一个 40 MB 的 PDF,几乎不可能是 40 MB 的文字。它是 40 MB 以 300 dpi 扫描、再以 JPEG 存下来的页面,偶尔还额外加了一层 OCR 文字层。理解这一点,压缩结果才可预期:真正的杠杆是内嵌图片的分辨率和质量,其余都是零头。这也是为什么每个工具页标题上那个问题没有诚实答案。如果文档主要是矢量文字加内嵌字体,它本来就不大,没有什么可省的;如果里面是照片,不丢掉像素就不可能变小。本页链接到一个托管的压缩工具,下面讲的是各档位到底牺牲了什么、什么时候越压越大,以及输出里哪些东西会悄悄坏掉。
到底是什么让 PDF 变大
看看文件里最大的对象,答案几乎总是图片。一张 A4 页面按 300 dpi 彩色扫描,大约就是 1 到 5 MB,取决于页面细节多少,于是二十页的报告能有 40 MB,而实际文字只有四百个词。以矢量绘制加子集化字体存储的排版文字只有几十 KB,这类 PDF 跑一遍压缩器基本不会变。其它贡献因素也值得知道:字体整份嵌入而不是子集化,会让文字密集的文档体积翻几倍;一些生成器偷懒复制对象而不是引用,文档里会出现重复对象;长文档逐页扫描拼装时,每页还会附带一层元数据。诚实的压缩器主要做两件事:重新编码图片,丢掉没人引用的对象;任何声称能把纯矢量 PDF 压缩掉 90% 的工具,量的多半不是同一个东西。
有损档位,以及越压越大的情况
多数托管压缩工具提供几档预设,从基本只重新打包的无损处理,到把图片狠狠降采样的强力档。差异主要是视觉上的:文字能撑很久,因为文字对比度高、抗重采样;但照片或网点扫描件会先变糊,再到字母周围出现振铃。两个实用提醒。第一,对已经优化过的文件做无损处理,结果可能反而略大,因为重新打包是针对另一种阅读器优化的,已经没什么可删的了;请比较两个结果,留下更小的那个。第二,不少服务会在压缩时顺带做 OCR,在扫描图上叠一层可选中的文字层,这对搜索和无障碍确实有用,也是最可能让文件变大的一个步骤,所以它是需要选择的选项,而不是附赠。
重新编码之后,什么会坏掉
重新编码会重写文件,而有几样东西依赖确切的字节:数字签名立刻失效,因为签名覆盖一段字节范围,图片周围的一切都挪了位;带标签的 PDF 无障碍结构可能被压平,如果文档必须保持无障碍这就麻烦了;PDF/A 归档合规要求字体完整内嵌并正确子集化,压缩之后可能在肉眼不可见的地方丢掉合规性;表单域常被压平成当前值;书签和页序通常还在,批注则常常不在。由此得出的规则很简单:文件已签署、属于某种归档标准、或者要作为证据归档的,就压缩一份副本,原始文件一个字节都不要动。如果你的起点是扫描件,在生成 PDF 之前先把源图片压小,往往能达到同样目标体积,而观感更好。
常见问题
我的 PDF 能压掉多少?
完全取决于里面是什么。扫描文档在中等档位下通常能减少 60% 到 90%,因为图片占了绝大部分;由文字处理软件生成的纯文字 PDF 本来就没有可压缩的内容,重新打包后可能一样大甚至略大。压缩一份副本,比较两个文件的大小,留下更小的那个。
压缩之后文字会变糊吗?
文字比照片抗重采样得多,所以中等档位通常仍然完全清晰;肉眼可见的劣化先出现在图片上,最激进的档位才会表现为字母周围轻微的振铃。一个可靠的做法:先各看一页带表格的和一页带照片的,再决定档位。
文件会被上传吗?服务免费吗?
本页链接的服务在你的服务器上处理文件,适用对方的隐私政策,请不要把机密内容交给托管压缩工具。免费额度覆盖一般文档,并对单文件和每日用量设了上限,服务商随时可能调整。涉密文件请用本机的 Ghostscript 或 qpdf 做同样的事,完全不上传。
压缩会让数字签名失效吗?
会。签名覆盖的是文件中一段确切的字节范围,重新编码会改变这些字节,签名就不再有效。请不要压缩你签过名的文件;压缩一份用于发送的副本,签名原件保持原样。