我正在尝试从PDF文件中检索签名信息,我能够使用itext库获取所有签名字段的名称:
PdfReader reader = new PdfReader(inputStream, null);
AcroFields af = reader.getAcroFields();
ArrayList<String> names = af.getSignatureNames();
但是我真正想要的是PDF文档中显示的确切的可视文本,例如,对于该文档,我想要获取以下文本:版本1:由我的测试公司签名
答案 0 :(得分:0)
部分文字来自Adobe Reader。但是总的来说这是可能的。在Java版本中,代码如下所示:
PdfReader reader = new PdfReader(inputStream, null);
AcroFields af = reader.getAcroFields();
ArrayList<String> names = af.getSignatureNames();
for (String signatureName : names) {
int revision = reader.getAcroFields().getRevision(signatureName);
AcroFields.Item item = acroFields.getFieldItem(signatureName);
PdfDictionary d = item.getMerged(0);
PdfDictionary v = d.getAsDict(PdfName.V);
if (v != null) {
PdfString name = v.getAsString(PdfName.NAME);
System.out.println("Rev."+revision+": Signed by "+ name.toString());
}
}