整个PDF压缩

5
我正在开发一个工具,用于编写PDF文件,并试图找到一种压缩PDF中对象和流的方法。我生成的许多PDF文件都相当大,但通过将对象(或大部分PDF结构)压缩成flate流可以大大减小它们的大小。我发誓以前见过这样做,但我查看的PDF文件似乎没有这样做。我还尝试使用Acrobat X进行“整个文件压缩”,但它似乎只能压缩流。
我尝试使用ObjStm,但其他文件阅读器对其支持不够。我需要一些在Adobe之外得到更多支持的东西。
感谢任何建议!

2
http://schnaader.info/precomp.php - Shelwien
3个回答

2

在PDF中,有两种类型的压缩:

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

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

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


1

您还可以考虑是否可以减小数据的大小(即是否对字体进行了子集化处理,图像是否以最佳dpi呈现,文件是否包含无用对象)。


1

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

我确定iText可以读取和编写这些文件,但我从未以这种方式使用它,因为结果更难调试。可能有一个示例PDF...但我没有找到。

我希望《iText实战第二版》中的样例之一涵盖了对象流,但没有找到。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接