本文将介绍如何使用Spire.PDF for JAVA验证PDF文档中的数字签名是否有效。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfSignature;
import com.spire.pdf.widget.*;
public class VerifySignature {
public static void main(String[] args) {
//创建PdfDocument实例
PdfDocument doc = new PdfDocument();
//加载含有签名的PDF文件
doc.loadFromFile("SimpleSign.pdf");
//获取域集合
PdfFormWidget pdfFormWidget = (PdfFormWidget) doc.getForm();
PdfFormFieldWidgetCollection pdfFormFieldWidgetCollection = pdfFormWidget.getFieldsWidget();
//遍历域
for (int i = 0; i < pdfFormFieldWidgetCollection.getCount(); i++) {
//判定是否为签名域
if (pdfFormFieldWidgetCollection.get(i) instanceof PdfSignatureFieldWidget) {
//获取签名域
PdfSignatureFieldWidget signatureFieldWidget = (PdfSignatureFieldWidget) pdfFormFieldWidgetCollection.get(i);
//获取签名
PdfSignature signature = signatureFieldWidget.getSignature();
//判定签名是否有效
boolean result = signature.verifySignature();
if (result) {
System.out.println("有效签名");
} else {
System.out.println("无效签名");
}
}
}
}
}