从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");
// 获取签名名称列表
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");
}