【发布时间】:2021-12-06 01:23:10
【问题描述】:
我正在使用 iText7 库进行签名。我尝试签署文档上可用的签名字段之一,但签名后,它仍然显示该字段未签名。以下是我用于签名的代码 sn-p。
String fieldName = "signature1";
PdfAcroForm pdfAcroForm = PdfAcroForm.getAcroForm(pdfDocument, false);
PdfArray pdfArray = pdfAcroForm.getField(fieldName).getWidgets().get(0).getRectangle();
Rectangle rect = pdfArray.toRectangle();
PdfSignatureAppearance appearance = pdfSigner.getSignatureAppearance().setReason("Test")
.setLocation("Test").setReuseAppearance(false);
appearance.setPageRect(rect).setPageNumber(1);
IExternalSignature pks =
new PrivateKeySignature(pk, DigestAlgorithms.SHA256, provider.getName());
pdfSigner.signDetached(new BouncyCastleDigest(), pks, chain, null, null, null, 0, CryptoStandard.CMS);
更新
对于以下 pdf,尽管按照响应中提到的方式签名了字段,但我没有在文档上获得签名可见性;但是,为上述早期共享的 pdf 工作。
pdfSigner.setFieldName(fieldName);
【问题讨论】: