Добавление цифровой подписи или подписание PDF в Java
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();
}
}
Сертификация PDF с помощью DocMDP
Используйте подпись обнаружения и предотвращения изменения документа, когда требуются ограничения уровня сертификации:
- Создайте фасад 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();
}
}