18

所以这里有一些关于 PDF 压缩的线程说,由于 PDF 已经被压缩,压缩 PDF 有一些,但不是很多。

我的问题是:包括旧版格式在内的所有 PDF 都是如此吗?

此外,我确信有人(可能是白痴)可以将位图放入 PDF 而不是 JPEG 等。我们公司的数据库中有很多 PDF(可能是一些较旧的格式)。我们正在考虑在传输过程中使用 gzip 进行压缩,但不知道是否值得麻烦

4

2 回答 2

15

PDF通常对其包含的对象使用内部压缩。但是根据文件格式规范,这种压缩绝不是强制性的。所有(或某些)对象可能看起来完全未压缩,它们仍然可以生成有效的 PDF。

有一些命令行工具能够解压缩大部分(如果不是全部)内部对象流(甚至是最现代的 PDF 版本)——并且新的未压缩版本的文件将在屏幕上呈现完全相同或在纸上(如果打印)。

所以回答你的问题:不,你不能假设 gzip 压缩只会增加麻烦而没有好处。您必须使用具有代表性的文件样本集对其进行测试。只需压缩它们并记下使用的时间和节省的空间。

它还取决于所使用的 PDF 制作软件的类型...

于 2012-05-11T09:35:36.233 回答
5

通过使用 PDF 实用程序对格式中的内容应用压缩以及删除不需要的嵌入字体等内容,您将获得更好的收益,而不是应用 gzip 压缩。此类实用程序可以对图像进行下采样并应用适当的图像压缩,这将比 gzip 有效得多。JBIG2 可以应用于双层图像并且非常有效,JPEG 可以应用于自然图像,并根据您的需要选择质量级别。在 Acrobat Pro 中,您可以使用 Advanced -> PDF Optimizer 查看空间的使用情况并有选择地攻击这些消费者。还有一个通用的 Document -> Reduce File Size 可以自动应用这些缩减。

更新:

Ika 的答案有一个指向可以从 Java 中使用的 PDF 优化实用程序的链接。您可以在那里查看他们的示例 Java 代码。该代码准确地列出了我提到的内容:

  • 删除重复的字体、图像、ICC 配置文件和任何其他数据流。
  • 可选择将高质量或可打印的 PDF 文件转换为小型、高效且可用于网络的 PDF。
  • 可选择将大图像下采样到给定的分辨率。
  • 可选择使用 JBIG2 和 JPEG2000 压缩格式压缩或重新压缩 PDF 图像。
  • 压缩未压缩的流并删除未使用的 PDF 对象。
于 2012-05-11T14:20:17.027 回答