【问题标题】:Are all PDF files compressed?所有PDF文件都压缩了吗?
【发布时间】:2012-05-19 20:17:27
【问题描述】:

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

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

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

【问题讨论】:

    标签: pdf compression gzip


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 但是文本内容被压缩了吗?那么嵌入式字体呢?
    • @Stewart:嵌入字体通常会被压缩(因为默认情况下字体文件本身也会被压缩)。另请参阅对“[如何从 PDF 中提取嵌入字体作为有效字体文件?](stackoverflow.com/a/3489099/359307)”的回答。文本内容通常与其他内容一样嵌入,并且可能会或可能不会被压缩,正如答案所述......
    • @KurtPfeifle 你是说PDF中的文本部分是“对象”,就像图像等一样?对于不熟悉该格式在幕后如何运作的人来说,这并不清楚。
    • @Steward:是的。 :-)
    【解决方案2】:

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

    更新:

    Ika 的答案有一个指向可以从 Java 中使用的 PDF 优化实用程序的链接。你可以看看他们的sample Java code there。该代码准确地列出了我提到的内容:

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

    【讨论】:

    • 我不熟悉 PDF 实用程序。是否有用于此的 JAVA API,因为我们使用的任何解决方案都必须有一个 API,以便我们可以在我们的服务器上自动化该过程?我知道 Apache PDFbox,但不确定它对于压缩已构建的 PDF 有多好
    • 想了解在 PDF 中使用 JPEG2000 的问题。此选项不常用。在某些设备上是否存在任何渲染问题
    • PDF 1.5,包括 JPEG2000,于 2003 年 4 月推出。只要您的阅读器至少支持 PDF 1.5,它就可以工作。
    猜你喜欢
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    • 2017-09-29
    • 2012-10-09
    相关资源
    最近更新 更多