是否压缩了所有PDF文件?

时间:2012-05-11 08:22:02

标签: pdf compression gzip

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

我的问题是:所有PDF都适用,包括格式的旧版本吗?

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

2 个答案:

答案 0 :(得分:13)

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

有一些命令行工具可以解压缩大多数(如果不是全部)内部对象流(即使是最现代版本的PDF) - 文件的新的未压缩版本将完全呈现在屏幕上或纸上(如果打印)相同。

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

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

答案 1 :(得分:2)

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

<强>更新

Ika的回答链接到可以从Java使用的PDF优化实用程序。你可以查看他们的sample Java code there。该代码完全列出了我提到的内容:

  • 删除重复的字体,图像,ICC配置文件和任何其他数据流。
  • 可选择将高质量或可打印的PDF文件转换为小巧,高效且可在网络上使用的PDF文件。
  • 可选择将大图像下采样到给定的分辨率。
  • 可选择使用JBIG2和JPEG2000压缩格式压缩或重新压缩PDF图像。
  • 压缩未压缩的流并删除未使用的PDF对象。