2011-02-09 82 views
5

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

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

任何建议表示赞赏!

+0

http://schnaader.info/precomp.php – Shelwien 2011-02-09 16:15:52

回答

2

在PDF你可以有两种类型的压缩:

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

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

对象压缩可用于Acrobat 6.

1

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

1

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

我认为iText可以读取和写入这些文件,但我从来没有这样使用它,因为结果显然难以调试。可能有一个样本PDF ......但我没有看到任何。

我希望iText在行动第二版样本涵盖对象流,但没有找到一个。