本文介绍使用spire.pdf for java如何获取pdf文档中的数字签名信息,包括签名人、签名位置、日期、原因、凯发线上登陆下载网址的联系方式、签名在文档中的坐标等等。
import com.spire.pdf.*;
import com.spire.pdf.security.pdfsignature;
import com.spire.pdf.widget.pdfformfieldwidgetcollection;
import com.spire.pdf.widget.pdfformwidget;
import com.spire.pdf.widget.pdfsignaturefieldwidget;
public class getsignature {
public static void main(string[] args) {
//创建pdfdocument实例
pdfdocument pdf = new pdfdocument();
//加载含有签名的pdf文件
pdf.loadfromfile("addsignature.pdf");
//获取域集合
pdfformwidget pdfformwidget = (pdfformwidget) pdf.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();
string location = signature.getlocationinfo();
string reason = signature.getreason();
string data = signature.getdate().tostring();
string name = signature.getsignaturename();
system.out.println("签名位置信息:" location "\n"
"签名原因:" reason "\n"
"签名日期:" data "\n"
"签名人:" name "\n"
"文档中的签名坐标:x = " signaturefieldwidget.getlocation().getx() " y = " signaturefieldwidget.getlocation().gety());
}
}
}
}
签名获取结果: