我正在研究一种可以编写PDF的工具,并且正在尝试找到压缩PDF中的对象和流的方法。我生成的许多PDF都相当大,但可以通过将对象(或大部分PDF结构)压缩为flate流来大大减少。我发誓我之前已经看过这个,但是我看过的所有PDF都没有看到。我也尝试使用Acrobat X通过“整个文件压缩”来压缩它,但它似乎只压缩流。
我尝试过使用ObjStm,但它没有其他文件阅读器的大量支持。我需要一些在Adobe之外有更多支持的东西。
任何建议都表示赞赏!
答案 0 :(得分:2)
在PDF中,您可以使用两种类型的压缩:
这些是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第二版样本涵盖对象流,但没有找到。