Itext 如何从PdfDictionary检索日期
在签名的PDF中 在SignatureDictionary的PROP_BUILD字典的筛选器字典中有4个键Itext 如何从PdfDictionary检索日期,itext,itextpdf,Itext,Itextpdf,在签名的PDF中 在SignatureDictionary的PROP_BUILD字典的筛选器字典中有4个键 /Date /Name /V /R 由于没有PdfName.DATE,我如何从我知道存在的这一点检索日期,正如RUPS可以看到的那样?RUPS使用getAsDict(),getAsNumber()等方法在PDF中爬行。但是一切都是从getCatalog()方法开始的,它为您提供了PDF的根字典 这些都在的第13章中进行了解释,但是如果您没有该书的副本,您已经可以从名为“由内而外”的PDF
/Date
/Name
/V
/R
由于没有PdfName.DATE,我如何从我知道存在的这一点检索日期,正如RUPS可以看到的那样?RUPS使用
getAsDict()
,getAsNumber()
等方法在PDF中爬行。但是一切都是从getCatalog()
方法开始的,它为您提供了PDF的根字典
这些都在的第13章中进行了解释,但是如果您没有该书的副本,您已经可以从名为“由内而外”的PDF中获益
例如:请看以下示例:
在本例中,我们使用getCatalog()
方法从reader
获取root
字典。我们使用getAsDict()
方法获得/AcroForm
字典,使用getAsArray()
方法获得/Fields
数组
在内部,这已经让您非常接近您所需要的,因为/Fields
数组中的一个字典将是签名字段字典:
PdfDictionary signatureField = fields.getAsDict(i);
在上面的i
行中,是签名字段的索引(您可以找到/Fields
数组中的哪些条目是您要查找的签名字段)
一旦您有了签名字段,您就可以得到如下签名字典:
PdfDictionary sigDict = signatureField.getAsDict(PdfName.V);
从此,您可以进一步检查签名字典中的所有条目
注意,使用
AcroField.Item
类还可以直接进入签名字段字典。有关更多信息,请查看示例。然而,正如您明确提到的RUPS,我想您应该想知道RUPS在内部是如何工作的,这就是我从根字典开始的原因。一如既往,有用的指针。。。与get(PdfName.PROP_BUILD).get(PdfName.FILTER).get(new PdfName('Date'))一起使用PdfName.class中名为“/slns_fsize”的键名是什么来获取fontsize?@Bruno
PdfDictionary sigDict = signatureField.getAsDict(PdfName.V);