Java でのデジタル署名の追加または PDF へのデジタル署名

Aspose.PDF for Java は、PdfFileSignature を通じて複数の署名フローをサポートしています。

証明書オブジェクトの使用して PDF への署名

  1. PdfFileSignature ファサードを作成し、ソース PDF ドキュメントをバインドしてください。
  2. PKCS7 署名オブジェクトを作成し、署名オプションを構成してください。
  3. PdfFileSignature を使用して PDF ドキュメントに署名を適用してください。
  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. PdfFileSignature を使用して PDF ドキュメントに署名を適用してください。
  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();
    }
}

DocMDP で PDF の認証

認証レベルの制限が必要な場合は、文書の変更検出および防止署名を使用してください。

  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();
    }
}