从 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");
}