pdf java itext 5.4.3中的无效预告片

时间:2015-11-20 08:18:24

标签: itext

我的要求是在PDF底部添加时间戳。我使用itext 5.4.3版本编辑PDF并能够成功添加时间戳。但是这个过程会抛出一些PDF的java.lang.ArrayIndexOutOfBoundsException异常。附上下面的异常堆栈跟踪。

at com.itextpdf.text.pdf.PdfEncryption.createInfoId(PdfEncryption.java:558)
    at com.itextpdf.text.pdf.PdfStamperImp.close(PdfStamperImp.java:383)
    at com.itextpdf.text.pdf.PdfStamperImp.close(PdfStamperImp.java:337)
    at com.itextpdf.text.pdf.PdfStamper.close(PdfStamper.java:206)

我做了分析,发现这个问题正在发生,因为pdf中存在坏预告片,itext期待16位预告片数据,而我的pdf只有4位或有些10位。附上下面的预告片信息。

有效预告片: / ID AA8280F47FC1BF4DCD5C88E6A493092D

无效预告片: / ID B2DE387A

我们已经要求供应商重新扫描PDF,但看起来大多数PDF都有类似的预告片。无论如何使用具有无效预告片的itext来编辑PDF?请帮忙。

任何更新版本都可以解决问题吗?

1 个答案:

答案 0 :(得分:0)

这可以通过5.4.3重现,但不适用于当前版本5.5.7。

这可能是修复它的提交:e28f688033 (这个修复似乎有点矫枉过正,因为只要现有的ID不是16字节,它就会创建新的ID,这不是必需的。)