pdf java itext 5.4.3 中的预告片无效
Invalid trailer in pdf java itext 5.4.3
我的要求是在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 的方法?请帮忙。
任何更新版本都会解决这个问题?
这可以在 5.4.3 中重现,但不能在当前版本 5.5.7 中重现。
这可能是修复它的提交:e28f688033
(此修复似乎有点矫枉过正,因为它会在现有 ID 不是 16 字节时创建新 ID,这不是必需的。)
我的要求是在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 的方法?请帮忙。
任何更新版本都会解决这个问题?
这可以在 5.4.3 中重现,但不能在当前版本 5.5.7 中重现。
这可能是修复它的提交:e28f688033 (此修复似乎有点矫枉过正,因为它会在现有 ID 不是 16 字节时创建新 ID,这不是必需的。)