当前位置: 首页 > 知识库问答 >
问题:

PDFBox签名字段无法正确识别

谷博艺
2023-03-14
public static void main(String[] args) throws IOException, URISyntaxException
{
    PDDocument document;

    document = new PDDocument();

    PDPage page = new PDPage(PDRectangle.A4);

    document.addPage(page);

    PDAcroForm acroForm = new PDAcroForm(document);
    document.getDocumentCatalog().setAcroForm(acroForm);   

    PDSignatureField signatureBox = new PDSignatureField(acroForm);

    signatureBox.setPartialName("ENSGN-MY_SIGNATURE_FIELD-001");

    acroForm.getFields().add(signatureBox);

    PDAnnotationWidget widget = signatureBox.getWidgets().get(0);
    PDRectangle rect = new PDRectangle();
    rect.setLowerLeftX(50);
    rect.setLowerLeftY(750);
    rect.setUpperRightX(250);
    rect.setUpperRightY(800);
    widget.setRectangle(rect);

    page.getAnnotations().add(widget);

    try {

        document.save("/tmp/mySignatureFieldGEN_PDFBOX.pdf");
        document.close();

    } catch (Exception io) {

        System.out.println(io);

    }        
}

生成PDF框

正如您所看到的,左侧的签名面板是无效的,但左侧的签名字段是存在的并且可以工作。

我用PDFTRON生成相同的PDF。这就是结果:

生成的PDF Tron

在这种情况下,左侧的签名面板正确显示签名字段的存在。

我想获得这第二个案例(正确),但我不明白为什么PDF框可以这样做。

多谢

共有1个答案

邢昂然
2023-03-14

添加以下内容:

widget.setPage(page);

这将设置/p条目。

现在左边的面板出现了。我是怎么想到这个主意的?我得到了一个签名字段如此空的文档(从这里),并用PDFDebugger将其与您的进行了比较。

 类似资料:
  • 为什么JavaScript的innerHTML标签无法正确识别这段语句呢? 以上这两句有什么区别吗?为什么我通过变量来添加 innerHTML 的内容会无法正确识别标签? 通过浏览器,我查看了第一句的渲染,发现是 < li class="left">1 加了双引号,但是最后一个 </li> 却没有正确识别。请问是什么原因?求各位大神指教。

  • 我是使用数字签名的新手。在其中一个项目中,我们使用Apache PdfBox来处理数字签名的pdf文件。虽然我们可以测试所有功能,但签名pdf文件的验证是我们无法破解的。我们使用BouncyCastle作为提供程序。下面是代码: 从pdf文件获取数字签名和签名内容: 数字签名验证: 以下是p7b格式证书的相关摘录-我使用BouncyCastle作为安全提供程序: 使用上面的代码,我总是得到“fal

  • PDF创建步骤: 通过添加空签名字段名称创建pdf:suhasb@gmail.com和nikhil.courser@gmail.com,使用原始的hello.pdf输出文件名hello_tag.pdf运行程序>tagpdfsignaturefields.java 从hello_tag.pdf文件中提取签名字段suhasb@gmail.com进行首次签名,输出文件名为hello_signd.pdf

  • 我使用PDFBox在JAVA中实现了签名功能。 我的代码的签名部分是: 如果我使用用keytool命令生成的测试自动签名证书,一切都会正常工作。 问题是,当我用一个真正经过认证的现有证书尝试这段代码时,我得到了一个例外: 我不知道为什么这行不通... 任何帮助都将不胜感激!=)

  • 问题内容: 我遇到反序列化问题: 这是我的课: 我要反序列化的JSON是: 我得到这个异常: 我不想添加: 因为我想得到ResObj … 如果我添加了注释,它将通过,但会将其设置为null ..这是我不想要的。 问题答案: 如果您不想在bean中使用设置器,而只使用字段和获取器,则可以使用ObjectMapper的可见性检查器来允许字段可见。像下面这样

  • 这是接口签名 这是类签名者 我用java和bouncycastle创建了证书和密钥对,我现在不知道是问题还是我做错了什么?