整个PDF压缩

时间:2011-02-09 16:13:36

标签: pdf

我正在研究一种可以编写PDF的工具,并且正在尝试找到压缩PDF中的对象和流的方法。我生成的许多PDF都相当大,但可以通过将对象(或大部分PDF结构)压缩为flate流来大大减少。我发誓我之前已经看过这个,但是我看过的所有PDF都没有看到。我也尝试使用Acrobat X通过“整个文件压缩”来压缩它,但它似乎只压缩流。

我尝试过使用ObjStm,但它没有其他文件阅读器的大量支持。我需要一些在Adobe之外有更多支持的东西。

任何建议都表示赞赏!

3 个答案:

答案 0 :(得分:2)

在PDF中,您可以使用两种类型的压缩:

  1. 流压缩 - 使用各种方法压缩数据,但不压缩PDF文件结构。
  2. 对象压缩 - 您还压缩文件结构,主要是不包含流的对象。
  3. 这些是PDF中唯一受支持的压缩方案。选择正确的压缩方法在很大程度上取决于您要压缩的数据:对于页面内容流,通常使用Flate压缩,1bpp图像使用CCITT G4或更好的JBIG2,彩色图像使用JPEG2000更好地压缩等。

    自Acrobat 6以来可以使用对象压缩。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

我希望其中一个iText in Action第二版样本涵盖对象流,但没有找到。