使用 IText 7 将数字签名添加到 PDF
Add Digital Signature to a PDF using IText 7
对于 IText 5,添加数字签名相当容易。
其文档的 link 是:
http://developers.itextpdf.com/examples/security/digital-signatures-white-paper/digital-signatures-chapter-2
有人可以在 ITEXT 7 中分享 link 文档吗?
我尝试了各种方法都无济于事。无法在线找到任何 link。我可以取消签名和检查签名,但是不能添加。
iText 7 的数字签名白皮书代码示例的端口可以在 iText 7 Java signature samples github repository test sources package com.itextpdf.samples.signatures, e.g. an excerpt from the simple C2_01_SignHelloWorld 示例中找到:
public void sign(String src, String dest,
Certificate[] chain,
PrivateKey pk, String digestAlgorithm, String provider,
PdfSigner.CryptoStandard subfilter,
String reason, String location)
throws GeneralSecurityException, IOException {
// Creating the reader and the signer
PdfReader reader = new PdfReader(src);
PdfSigner signer = new PdfSigner(reader, new FileOutputStream(dest), false);
// Creating the appearance
PdfSignatureAppearance appearance = signer.getSignatureAppearance()
.setReason(reason)
.setLocation(location)
.setReuseAppearance(false);
Rectangle rect = new Rectangle(36, 648, 200, 100);
appearance
.setPageRect(rect)
.setPageNumber(1);
signer.setFieldName("sig");
// Creating the signature
IExternalSignature pks = new PrivateKeySignature(pk, digestAlgorithm, provider);
IExternalDigest digest = new BouncyCastleDigest();
signer.signDetached(digest, pks, chain, null, null, null, 0, subfilter);
}
对于 IText 5,添加数字签名相当容易。 其文档的 link 是: http://developers.itextpdf.com/examples/security/digital-signatures-white-paper/digital-signatures-chapter-2
有人可以在 ITEXT 7 中分享 link 文档吗? 我尝试了各种方法都无济于事。无法在线找到任何 link。我可以取消签名和检查签名,但是不能添加。
iText 7 的数字签名白皮书代码示例的端口可以在 iText 7 Java signature samples github repository test sources package com.itextpdf.samples.signatures, e.g. an excerpt from the simple C2_01_SignHelloWorld 示例中找到:
public void sign(String src, String dest,
Certificate[] chain,
PrivateKey pk, String digestAlgorithm, String provider,
PdfSigner.CryptoStandard subfilter,
String reason, String location)
throws GeneralSecurityException, IOException {
// Creating the reader and the signer
PdfReader reader = new PdfReader(src);
PdfSigner signer = new PdfSigner(reader, new FileOutputStream(dest), false);
// Creating the appearance
PdfSignatureAppearance appearance = signer.getSignatureAppearance()
.setReason(reason)
.setLocation(location)
.setReuseAppearance(false);
Rectangle rect = new Rectangle(36, 648, 200, 100);
appearance
.setPageRect(rect)
.setPageNumber(1);
signer.setFieldName("sig");
// Creating the signature
IExternalSignature pks = new PrivateKeySignature(pk, digestAlgorithm, provider);
IExternalDigest digest = new BouncyCastleDigest();
signer.signDetached(digest, pks, chain, null, null, null, 0, subfilter);
}