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

时间:2015-06-17 13:13:11

标签: pdf pdf-generation itextsharp

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

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

1 个答案:

答案 0 :(得分:2)

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

图像流在适用时使用其他过滤器,例如:使用/DCTDecode存储JPEG图像,使用/JBIG2Decode存储JBIG2图像,使用/CCITTFaxDecode存储CCITT图像,依此类推

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

我们注意到的另一件事是,某些遗留软件不支持压缩的交叉引用表,也不支持存储在流中的对象。这是在PDF 1.5(2003)中引入的。这就是为什么iTextSharp不会压缩外部参照表,也不会将压缩到流中的对象引入,除非您有意指示iTextSharp执行此操作