PDFファイルから署名を削除する

PDFファイルからデジタル署名を削除する

PDFファイルに署名が追加された場合、それを削除することが可能です。特定の署名を削除することも、ファイル内のすべての署名を削除することもできます。署名を削除する最も迅速な方法は署名フィールドも削除しますが、署名フィールドを保持して署名を削除するだけで、再度署名できるようにすることも可能です。

PdfFileSignature クラスの RemoveSignature メソッドは、PDFファイルから署名を削除することを可能にします。 このメソッドは、署名名を入力として受け取ります。署名名を直接指定するか、すべての署名を削除するには、getSignNames メソッドを使用して署名名を取得します。

次のコードスニペットは、PDFファイルからデジタル署名を削除する方法を示しています。

 public static void RemoveSignature() {
        // PdfFileSignatureオブジェクトを作成
        PdfFileSignature pdfSign = new PdfFileSignature();
        // PDFドキュメントを開く
        pdfSign.bindPdf(_dataDir + "DigitallySign.pdf");
        // 署名名のリストを取得
        List<String> sigNames = pdfSign.getSignNames();
        // PDFファイルからすべての署名を削除
        for (int index = 0; index < sigNames.size(); index++) {
            System.out.println("Removed " + sigNames.get(index));
            pdfSign.removeSignature(sigNames.get(index));
        }
        // 更新されたPDFファイルを保存
        pdfSign.save(_dataDir + "RemoveSignature_out.pdf");
    }

署名を削除するが、署名フィールドは保持する

上記のように、PdfFileSignature クラスの removeSignature メソッドを使用すると、PDFファイルから署名フィールドを削除できます。このメソッドをバージョン9.3.0以前で使用すると、署名と署名フィールドの両方が削除されます。開発者の中には、署名だけを削除し、署名フィールドは保持しておきたいという人もいます。これにより、文書を再署名することができます。署名フィールドを保持し、署名のみを削除するには、以下のコードスニペットを使用してください。

 public static void RemoveSignatureButKeepField() {
        // PdfFileSignatureオブジェクトを作成
        PdfFileSignature pdfSign = new PdfFileSignature();

        // PDFドキュメントを開く
        pdfSign.bindPdf(_dataDir + "DigitallySign.pdf");

        pdfSign.removeSignature("Signature1", false);

        // 更新されたPDFファイルを保存
        pdfSign.save(_dataDir + "RemoveSignature_out.pdf");
    }

以下の例は、フィールドからすべての署名を削除する方法を示しています。

public static void RemoveSignatureButKeepField2() {
        // PdfFileSignatureオブジェクトを作成
        PdfFileSignature pdfSign = new PdfFileSignature();

        // PDFドキュメントを開く
        pdfSign.bindPdf(_dataDir + "DigitallySign.pdf");

        List<String> sigNames = pdfSign.getSignNames();
        for (String sigName : sigNames) {
            pdfSign.removeSignature(sigName, false);
        }

        // 更新されたPDFファイルを保存
        pdfSign.save(_dataDir + "RemoveSignature_out.pdf");
    }