哪些 PDF 过滤器用于编码数据?

Which PDF filters are used to encode data?

目前我正在使用 iTextSharp 库生成 PDF 文件,这些文件将由一些文件处理器处理。此 pdf 文件处理器对 pdf 过滤器有一些限制,它将用于解码文件中的数据。

我非常想知道 iTextSharp 使用哪个 PDF 过滤器对数据进行编码,以便可以正确解码。

iTextSharp 支持 PDF 规范中定义的过滤器。这意味着内容流(例如页面)使用 /FlateDecode,这是所有其他 PDF 制作者默认使用的内容,因为这是 PDF 的标准压缩。

图像流在适用时使用其他过滤器,例如:JPEG 图像使用 /DCTDecode 存储,JBIG2 图像使用 /JBIG2Decode 存储,CCITT 图像使用 /CCITTFaxDecode 存储,以及等等。

很难相信会有不支持这些过滤器的 PDF 软件。也许有一些非常老的软件不支持 /JPXDecode(在 PDF 1.5 中引入;每当您尝试引入 JPEG2000 图像时使用)。但是,只要您不引入 .jpx.j2k 图像,这应该不是问题。因此,如果您不引入任何 .jpg 文件,则不会使用 /DCTDecode,依此类推。

我们注意到的另一件事是,一些遗留软件不支持压缩的交叉引用表,也不支持存储在流中的对象。这是在 PDF 1.5 (2003) 中引入的。这就是 iTextSharp 不压缩外部参照表,也不将对象压缩到流中的原因 ,除非您有意指示 iTextSharp 这样做