gpt4 book ai didi

java - PDFBox:签名时引用现有签名(字段)

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:52:18 24 4
gpt4 key购买 nike

我想弄清楚 PDFBox 是否支持对现有(emtpy)签名表单字段进行签名。我检查了 examples然而,所有这些似乎都只增加了新的领域。还有一个post OP 指出:

"Pre-existing signature fields are not affected by pdfbox as pdfbox appears not to be able to reference them."

然而,这是一年前写的,似乎有一些 effort关于签名功能。那么谁能告诉我是否可以(如果可以的话)引用现有的签名字段?或者也许它是计划好的?

更新我按照您的建议实现了以下功能:

PDDocumentCatalog docCatalog = doc.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();
PDField field = acroForm.getField("exampleSignature");
PDSignature signature = ((PDSignatureField)field).getSignature();

但是签名总是null。检查 PDF 规范后,它完全有意义,因为空签名字段永远不会设置签名字典。添加签名字典时,例如必须填写过滤器、内容、字节范围等的值,但只能填写对签名时有意义的值...

最佳答案

从 2.0.4 开始,但已经在 snapshot builds 中,可以签署现有的(空的)签名表单字段。 (它不适用于 2.0.3,即使您使用即将发布的 2.0.4 中更新的代码示例,因为库代码有几个错误已修复)。可以找到示例代码 here .示例代码中有两点是新的:

  • visibleSignatureProperties.buildSignature(); 已移动
  • 已添加调用 signature = findExistingSignature(doc, "Signature1");

它所做的是搜索名为“Signature1”的签名字段,如果找到,它会创建一个签名字典(/V 组件)。因为这个签名对象被传递给 doc.addSignature() 调用,PDFBox 将能够检测到父字段已经存在并且不会创建新的。

更多详细信息可以在PDFBOX-3525中找到.

关于java - PDFBox:签名时引用现有签名(字段),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39918829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com