使用pdfbox调用acroform.getFields()时获取null

时间:2013-05-07 13:37:36

标签: java pdfbox acrofields

我尝试以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
}

3 个答案:

答案 0 :(得分:2)

这是因为你的pdf如果不包含任何acroform

答案 1 :(得分:0)

form不是 null ,但这并不意味着它不是

请改为选中:

if (form.getDocument()!=null)

if (form.getFields()!=null)

如果它们为null,则错误来自其他地方。可能来自文档加载代码; )

答案 2 :(得分:0)

我遇到了同样的错误,事实证明我只是假设从这个特定的屏幕中我们的集合中的所有PDF都有字段。事实证明情况并非如此,我们的客户拥有某些根本没有字段的pdf。所以只需添加一个空检查以确保AcroForm不为空,你应该好好去。