使用经过认证的签名签署PDF / A-2a时,PDF / A已损坏。 出现的错误是:
如果我使用非认证签名对相同的PDF / A-2a签名,则不会出现Digestxxx错误。所以我认为问题与认证签名有关。
我使用的是iText版本5.4.5,在阅读发行说明时,我发现版本5.5.4似乎已经解决了这个问题。 然后我改为5.5.4版,但没有运气。出现相同的错误。 事实上,使用版本5.5.4我在签署PDF / A时还有两个错误:
您知道我怎么知道缺少文本操作符在PDF中的位置?
提前感谢您的帮助。
更新: 我一直在调试itext,问题似乎在版本检测中。 PDF是版本1.7,但是当进入这种情况(在PdfSignatureAppearance.java中)以确定是否必须写入Digestxxx字段时,返回的版本是4。
if (writer.getPdfVersion().getVersion() < PdfWriter.VERSION_1_6)
压模是在附加模式下使用PdfStamper.createSignature创建的,版本参数等于“\ 0”,以保持与原始文档(1.7)相同的版本。
有什么想法吗?
答案 0 :(得分:1)
我能够重现你最初的三个错误:
我已将此修复程序应用于iText。这确实是iText中的一个错误。问题是,如果您使用追加模式,PdfStamper会忽略提供的版本。这使它默认为1.4版。正如您已经发现的那样,在PdfSignatureAppearance中弄乱了PDF / A2-a文档。
我无法重现您报告的开头和结尾文字错误。如果您可以向我们展示您的代码并输入PDF,那么我们就来看看它。