我尝试以pdf格式提供所有字段,但在使用PDFBox调用NullPointerException
时遇到acroform.getFields()
。
样品:
pdDoc = PDDocument.load(fileName);
PDAcroForm form = pdDoc.getDocumentCatalog().getAcroForm();
if(form!=null)
{
List<PDField> field = form.getFields(); //here I am getting null pointer exception
}
答案 0 :(得分:2)
这是因为你的pdf如果不包含任何acroform
答案 1 :(得分:0)
form
不是 null ,但这并不意味着它不是空。
请改为选中:
if (form.getDocument()!=null)
或
if (form.getFields()!=null)
如果它们为null,则错误来自其他地方。可能来自文档加载代码; )
答案 2 :(得分:0)
我遇到了同样的错误,事实证明我只是假设从这个特定的屏幕中我们的集合中的所有PDF都有字段。事实证明情况并非如此,我们的客户拥有某些根本没有字段的pdf。所以只需添加一个空检查以确保AcroForm不为空,你应该好好去。