PDFファイルから署名を削除
Contents
[
Hide
]
PDFファイルからデジタル署名を削除
PDFファイルに署名が追加された場合、それを削除することが可能です。特定の署名、またはファイル内のすべての署名を削除することができます。署名を削除する最も迅速な方法は署名フィールドも削除しますが、署名フィールドを保持して署名だけを削除することも可能であり、ファイルを再び署名可能にします。
PdfFileSignature クラスの RemoveSignature メソッドを使用すると、PDFファイルから署名を削除することができます。 このメソッドは、署名名を入力として受け取ります。署名名を直接指定するか、すべての署名を削除するためには、GetSignNames メソッドを使用して署名名を取得します。
次のコードスニペットは、PDFファイルからデジタル署名を削除する方法を示しています。
public static void RemoveSignature()
{
// PdfFileSignatureオブジェクトを作成
PdfFileSignature pdfSign = new PdfFileSignature();
// PDFドキュメントを開く
pdfSign.BindPdf(_dataDir + "DigitallySign.pdf");
// 署名名のリストを取得
var sigNames = pdfSign.GetSignNames();
// PDFファイルからすべての署名を削除
for (int index = 0; index < sigNames.Count; index++)
{
Console.WriteLine($"Removed {sigNames[index]}");
pdfSign.RemoveSignature(sigNames[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");
var sigNames = pdfSign.GetSignNames();
foreach (var sigName in sigNames)
{
pdfSign.RemoveSignature(sigName, false);
}
// 更新されたPDFファイルを保存
pdfSign.Save(_dataDir + "RemoveSignature_out.pdf");
}