PDFBox 签名字段未被很好地识别
PDFBox Signature Field not well recognized
我在使用 PDFBox 2.0.0-RC3 并将数字签名字段生成为 PDF 时遇到了麻烦。
这是我使用的一段代码:
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 文档,我用 Acrobat 打开它 Reader 结果是这样的:
如您所见,左侧的签名面板无效,但左侧的签名字段存在并且有效。
我使用 PDFTron 生成相同的 PDF。这是结果:
在这种情况下,左侧的签名面板正确显示了签名字段的存在。
我想获得第二种情况(正确),但我不明白为什么PDF Box可以做到这一点。
非常感谢
添加这个:
widget.setPage(page);
这会设置 /P 条目。
现在左边的面板出现了。我是怎么想到这个主意的?我得到了一个带有这样一个空签名字段的文档(来自 ),并使用 PDFDebugger 将其与您的文档进行了比较。
我在使用 PDFBox 2.0.0-RC3 并将数字签名字段生成为 PDF 时遇到了麻烦。
这是我使用的一段代码:
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 文档,我用 Acrobat 打开它 Reader 结果是这样的:
如您所见,左侧的签名面板无效,但左侧的签名字段存在并且有效。
我使用 PDFTron 生成相同的 PDF。这是结果:
在这种情况下,左侧的签名面板正确显示了签名字段的存在。
我想获得第二种情况(正确),但我不明白为什么PDF Box可以做到这一点。
非常感谢
添加这个:
widget.setPage(page);
这会设置 /P 条目。
现在左边的面板出现了。我是怎么想到这个主意的?我得到了一个带有这样一个空签名字段的文档(来自