由于将pdfbox从1.8.6版本迁移到以下代码2.0.12
document = PDDocument.load(pdfDocumentAsInputStream);
final COSDictionary trailer = document.getDocument().getTrailer();
final COSDictionary root = (COSDictionary) trailer.getDictionaryObject(COSName.ROOT);
final COSDictionary acroForm = (COSDictionary) root.getDictionaryObject(COSName.ACRO_FORM);
final COSArray fields = (COSArray) acroForm.getDictionaryObject(COSName.FIELDS);
在
返回nullfinal COSDictionary acroForm = (COSDictionary) root.getDictionaryObject(COSName.ACRO_FORM);
InputStream有效,第一行有效。
答案 0 :(得分:2)
问题解决了。
如果某人实际上有类似的问题:
只有在pdf中存在交互形式时,AcroForm才存在。
对于我而言,未签名的PDF没有AcroForm,因此该方法可以正确返回
null
并抛出
NullPointerException
在
final COSArray fields = (COSArray) acroForm.getDictionaryObject(COSName.FIELDS);
。