在 Java 中添加数字签名或对 PDF 进行数字签署
Contents
[
Hide
]
Aspose.PDF for Java 支持通过多种签名流程 PdfFileSignature。
使用证书对象对 PDF 进行签名
- 创建 PdfFileSignature 对象并绑定源 PDF 文档。
- 创建 PKCS7 签名对象并配置签名选项。
- 通过以下方式对 PDF 文档应用签名 PdfFileSignature。
- 保存更新后的 PDF 文档。
public static void signPdfWithCertificateObject(Path inputFile, Path certificateFile, Path outputFile) {
PdfFileSignature pdfSignature = new PdfFileSignature();
try {
pdfSignature.bindPdf(inputFile.toString());
pdfSignature.sign(1, false, signatureRectangle(), createPkcs7(certificateFile, "Document approval"));
pdfSignature.save(outputFile.toString());
} finally {
pdfSignature.close();
}
}
这种方法构建了一个 PKCS7 首先是签名对象,然后将其应用于第 1 页。
使用基本证书参数对 PDF 进行签名
- 创建 PdfFileSignature 对象并绑定源 PDF 文档。
- 配置签名示例所需的证书参数。
- 通过以下方式对 PDF 文档应用签名 PdfFileSignature。
- 保存更新后的 PDF 文档。
public static void signPdfWithBasicParameters(Path inputFile, Path certificateFile, Path outputFile) {
PdfFileSignature pdfSignature = new PdfFileSignature();
try {
pdfSignature.bindPdf(inputFile.toString());
pdfSignature.setCertificate(certificateFile.toString(), CERTIFICATE_PASSWORD);
pdfSignature.sign(1, "Document approval", "qa@example.com", "New York, USA", false, signatureRectangle());
pdfSignature.save(outputFile.toString());
} finally {
pdfSignature.close();
}
}
使用 DocMDP 对 PDF 进行认证
当您需要认证级别的限制时,请使用文档修改检测与防止签名:
- 创建 PdfFileSignature 对象并绑定源 PDF 文档。
- 创建 DocMDPSignature 对象并配置 DocMDPAccessPermissions 签名选项。
- 应用认证签名并保存更新后的 PDF 文档。
public static void certifyPdfWithMdpSignature(Path inputFile, Path certificateFile, Path outputFile) {
PdfFileSignature pdfSignature = new PdfFileSignature();
try {
pdfSignature.bindPdf(inputFile.toString());
DocMDPSignature signature = new DocMDPSignature(
createPkcs7(certificateFile, "Certified for form filling and signing"),
DocMDPAccessPermissions.FillingInForms);
pdfSignature.certify(1, "Certified for form filling and signing", "security@example.com",
"New York, USA", true, signatureRectangle(), signature);
pdfSignature.save(outputFile.toString());
} finally {
pdfSignature.close();
}
}