Добавление цифровой подписи или подписание PDF в Java

Aspose.PDF for Java поддерживает несколько потоков подписи через PdfFileSignature.

Подписание PDF с объектом сертификата

  1. Создайте фасад PdfFileSignature и привяжите исходный PDF документ.
  2. Создайте объект PKCS7 подписи и настройте параметры подписи.
  3. Примените подпись к PDF‑документу через PdfFileSignature.
  4. Сохраните обновлённый 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 с базовыми параметрами сертификата

  1. Создайте фасад PdfFileSignature и привяжите исходный PDF документ.
  2. Настройте параметры сертификата, требуемые примером подписи.
  3. Примените подпись к PDF‑документу через PdfFileSignature.
  4. Сохраните обновлённый 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

Используйте подпись обнаружения и предотвращения изменения документа, когда требуются ограничения уровня сертификации:

  1. Создайте фасад PdfFileSignature и привяжите исходный PDF документ.
  2. Создайте объект DocMDPSignature и настройте параметры подписи DocMDPAccessPermissions.
  3. Примените сертификационную подпись и сохраните обновлённый 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();
    }
}