PDFly · 博客

如何压缩 PDF:真正能缩小文件的方法

两个 PDF,页数相同,其中一个的大小却是另一个的十倍。这几乎从来与文档中有多少文本无关——几乎总是取决于其中嵌入了什么,以及文件本身的打包效率如何。以下介绍究竟是什么决定了 PDF 的大小、PDFly 的“压缩 PDF”工具能做什么、不能做什么,以及针对它自身无法解决的情况的真实工作流程。

PDF 为什么会变大

PDF 是一个容器,它的大部分体积来自容器内所装的东西,而不是容器本身:

  • 图片。以完整分辨率嵌入的照片、扫描页、徽标和图表,是导致 PDF 臃肿的最常见原因。一张高分辨率照片的体积就可能超过五十页纯文本。
  • 扫描页。扫描文档实际上只是一连串嵌入的页面图片——没有单独的“文本”可言,因此文件大小几乎完全取决于图片大小和扫描分辨率。
  • 嵌入的字体。为保证渲染一致而嵌入的字体会带来实实在在的体积,尤其是在一份文档中含有多种字体或字重时。
  • 残留的结构冗余。经过反复编辑、合并或重新保存的 PDF,常常会累积重复对象、未使用的资源和低效的内部格式——这些都看不见,却都会增加字节数。

PDFly 的“压缩 PDF”工具究竟做了什么

PDFly 的“压缩 PDF”工具完全在您的浏览器中运行,执行无损结构性压缩:它会重建 PDF 的内部对象表,删除重复对象和以往编辑遗留的数据,并且在“中”和“高”设置下,使用压缩的对象流重写该表——这是 PDF 自 1.5 版起支持的一种更紧凑的格式。这不会触及图片中的任何一个像素,也不会重新编码任何一种字体,因此没有质量可损失。表单字段、超链接和书签均会保留。

需要准确说明这不是什么:它不是有损压缩。有损压缩通过丢弃细节来进一步缩小文件——通常是以较低的质量设置重新编码 JPEG,或降低其像素尺寸。Acrobat 等桌面编辑器可以做到这一点;PDFly 的浏览器内引擎目前不执行。这带来一个直接的后果:如果 PDF 的大小主要由图片而非结构决定,仅靠无损压缩效果有限。

低、中、高——这些级别究竟改变了什么

  • 低:跳过对象流的重建,以获得对旧版 PDF 阅读器的最大兼容性。
  • 中:使用压缩的对象流重建文件。这是大多数文档推荐的默认选项。
  • 高:目前采用与“中”相同的结构性重建。它预留给随着引擎发展而推出的更强的、感知图片的压缩——所以目前,“中”和“高”通常会产生相同的结果。

为什么扫描版 PDF 几乎缩小不了

这是任何 PDF 压缩器最常见的失望来源,并不只是 PDFly 的。扫描文档几乎完全由嵌入的页面图片构成——没有臃肿的对象表或重复的元数据可以修剪,因为该文件本来就不是因为结构原因而变大的。结构性压缩无法缩小它没有触及的图片。

如果扫描版 PDF 确实需要更小,真正的杠杆是图片,而不是包裹它们的外壳。有两种工作流程真正能起作用:

  • 一开始就以较低分辨率扫描。屏幕阅读 150–200 DPI 就足够了;300 DPI 留给需要打印的文档。
  • 对于您已有的 PDF:用提取图片把页面取出,用图片压缩器缩小它们,再用 JPG 转 PDF 重建 PDF。如果之后还需要文本可被搜索,请对结果运行 OCR PDF。

发送前如何检查结果

结构性压缩是无损的,因此无需目视检查质量——像素和字体都未被触动。值得检查的是:

  • 确认文件确实变小了。如果缩减不足 1%,PDFly 会显示“已优化”,而不是一个具有误导性的、四舍五入为零的百分比——这对于本来结构就很高效的文件是正常的。
  • 如果您在没有先移除密码的情况下直接压缩了受密码保护的 PDF,请确认结果能正常打开——已加密的文件可能产生损坏的输出。如果适用,请先解锁 PDF。
  • 对于扫描版或图片较多的文件,在断定工具失败之前,请先检查缩减幅度是否达到您的预期——见上文。

什么时候压缩不是答案

有时,文件大小其实并不是需要解决的问题。如果您是通过云盘或文档平台,而不是电子邮件附件来分享,大文件往往根本不是问题。如果文档的体积来自确实必要的高分辨率图片——比如面向印刷的设计文件——压缩就违背了初衷。凡是必须完整保持质量的,请保留原件,并对副本进行压缩,供真正需要轻量传输的版本使用。

电子邮件附件限制

大多数主流电子邮件服务商把附件上限设在约 25MB。结构性压缩可以显著缩小以文档为主、经常编辑的 PDF,但无法挽救仅仅因图片而超大的文件——对此,上文的“提取图片 → 图片压缩器 → JPG 转 PDF”工作流程,或者改用共享链接而不是附件,会更有效。

常见问题

压缩 PDF 会降低图片质量吗?

PDFly 的压缩器不会。它无损地重建 PDF 的内部结构,不会重新编码或降采样嵌入的图片,因此不会有可见的质量损失。如需像素级的图片压缩,请对图片本身使用图片压缩器。

为什么我的扫描版 PDF 没有变小多少?

扫描版 PDF 几乎完全由嵌入的页面图片构成。结构性压缩只会重建文档的对象表,因此无法缩小占据扫描文件大部分体积的图片。

低、中、高压缩有什么区别?

“低”会跳过对象流重建,以最大限度兼容较旧的 PDF 阅读器。“中”使用压缩的对象流重建文件,是推荐的默认选项。“高”目前采用与“中”相同的结构性重建,并预留给随着 PDFly 引擎发展而推出的更强的、感知图片的压缩。

我压缩时文件会被上传到服务器吗?

不会。PDFly 的“压缩 PDF”工具使用 pdf-lib 库完全在您的浏览器中运行。您的文件被读取、压缩并提供下载,全程不会被发送到任何地方。

我可以压缩受密码保护的 PDF 吗?

请先用“解锁 PDF”移除密码。直接压缩已加密的文件可能产生损坏或无法读取的结果。

A

Ayaz