【问题标题】:Whole PDF compression整个 PDF 压缩
【发布时间】:2011-06-24 06:21:50
【问题描述】:

我正在开发一种用于编写 PDF 的工具,并试图找到一种方法来压缩 PDF 中的对象和流。我生成的许多 PDF 都相当大,但可以通过将对象(或大部分 PDF 结构)压缩成一个扁平流来显着减少。我发誓我以前见过这样做,但我看过的 PDF 似乎都没有这样做。我还尝试使用 Acrobat X 以“整个文件压缩”来压缩它,但它似乎只压缩流。

我尝试过使用 ObjStm,但它没有得到其他文件阅读器的大量支持。我需要在 Adob​​e 之外获得更多支持的东西。

欢迎提出任何建议!

【问题讨论】:

标签: pdf


【解决方案1】:

在 PDF 中,您可以有 2 种类型的压缩:

  1. 流压缩 - 使用各种方法压缩数据,但不压缩 PDF 文件结构。
  2. 对象压缩 - 您还可以压缩文件结构,主要是不包括流的对象。

这些是 PDF 中唯一受支持的压缩方案。选择正确的压缩方法很大程度上取决于您要压缩的数据:对于页面内容流,通常使用 Flate 压缩,1bpp 图像使用 CCITT G4 或更好的 JBIG2,彩色图像使用 JPEG2000 压缩效果更好,等等。

对象压缩从 Acrobat 6 开始可用。

【讨论】:

    【解决方案2】:

    您还可以查看是否可以减少数据的大小(即字体是否被子集化,图像是否处于最佳 dpi,文件是否包含死对象)。

    【讨论】:

      【解决方案3】:

      查看PDF Specification,第 7.5.7 节(对象流)和 7.5.8(交叉引用流)。

      我很肯定iText 可以读取和写入这些文件,但我从不那样使用它,因为结果很难调试。可能有一个示例 PDF……但我没有看到任何内容。

      我希望 iText in Action 第 2 版示例中的一个涵盖对象流,但没有找到。

      【讨论】:

        猜你喜欢
        • 2011-07-12
        • 1970-01-01
        • 2016-10-07
        • 2010-12-19
        • 2012-10-09
        • 2015-08-07
        • 1970-01-01
        • 2017-05-26
        • 2012-02-05
        相关资源
        最近更新 更多