我在PDF文档中(以编程方式)填写了表格(AcroPdf),然后在文档上签名。我从doc.pdf开始,使用PDFBox的setFields.java示例创建doc_filled.pdf。然后,我根据签名示例使用一些代码对doc_filled.pdf进行签名,以创建doc?filled_signed.pdf,然后在Acrobat
Reader中打开pdf。输入的字段数据可见,签名面板告诉我
“此签名中包含格式或信息方面的错误(签名字节数组无效)”
到目前为止,我知道:
单独应用的签名代码(即直接创建一些doc_signed.pdf)会创建有效的签名
存在将“不可见签名”,可见签名和可见签名添加到现有签名字段的问题。
如果我不填写表格,而仅打开并保存表格,则甚至会出现问题,即:PDDocument doc = PDDocument.load(new File("doc.pdf"));
doc.save(new File(“doc_filled.pdf”));
doc.close();
足以破坏后来应用的签名代码。
另一方面,如果我使用相同的doc.pdf,请在Adobe中手动输入该字段的值,签名代码会产生有效的签名。
我究竟做错了什么?
更新:
@mkl要求我提供文件,我正在谈论(我目前没有足够的声誉,无法将所有文件发布为链接,对于给您带来的不便表示抱歉):
odc.pdf:https://www.dropbox.com/s/ev8x9q48w5l0hof/doc.pdf &#x