【发布时间】:2020-09-21 09:15:15
【问题描述】:
我正在使用 pdfbox 1.8.8 在 PDF 上生成可见符号。 这是我的代码。我无法获得可见的登录 pdf。 我得到的只是一个没有内容的矩形框。
PDDocument document = PDDocument.load(temp);
document.getCurrentAccessPermission().setCanModify(false);
PDSignature signature = new PDSignature();
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
signature.setName("XyZ");
signature.setLocation("XYZ");
signature.setReason("test");
signature.setSignDate(Calendar.getInstance());
InputStream image = new FileInputStream("download.png");
PDVisibleSignDesigner signatureDesigner = new PDVisibleSignDesigner(
document, image, document.getNumberOfPages());
signatureDesigner.xAxis(0).yAxis(0).zoom(-80).signatureFieldName("signature");
PDVisibleSigProperties signatureProperties = new PDVisibleSigProperties();
signatureProperties.signerName("Xyz").signerLocation("Xyz")
.signatureReason("Test").preferredSize(100).page(1)
.visualSignEnabled(true).setPdVisibleSignature(signatureDesigner).buildSignature();
SignatureOptions options = new SignatureOptions();
options.setVisualSignature(signatureProperties);
document.addSignature(signature, (SignatureInterface) this, options);
/* Sign */
document.saveIncremental(tempIn, tempOut);
实际结果:
预期结果:我想要这个带有图像和签名字段内容的块。
【问题讨论】:
-
1.8 仅支持 jpeg 图片(示例)
-
谢谢蒂尔曼·豪舍尔 :)
-
这解决了您的问题吗?顺便说一句,最好使用 PDFBox 2.0.*,它更灵活,并且有一个额外的视觉签名示例。
-
是的。通过将 .png 文件替换为 .jpeg 文件,它显示唯一的图像,而不是文本。对于文本,我也可能会移至 PDFbox 的 2.0.* 版本。无论如何,谢谢。
-
我正在使用 PDFBox 2.0.9 版和 bcpkix-jdk15on 1.60 版,但找不到 CMSSignedDataGenerator 类的 addSigner 方法。有什么想法吗?
标签: java pdfbox digital-signature