I tried to get All the fields available in pdf form but I'm encountering a NullPointerException
when calling acroform.getFields()
using PDFBox.
Sample:
pdDoc = PDDocument.load(fileName);
PDAcroForm form = pdDoc.getDocumentCatalog().getAcroForm();
if(form!=null)
{
List<PDField> field = form.getFields(); //here I am getting null pointer exception
}
this is because your pdf if not contain any acroform
form
is not null, but that doesn't mean it is not empty.
Check this instead:
if (form.getDocument()!=null)
or
if (form.getFields()!=null)
If those are null, then the error comes from elsewhere. Probably from the document loading code ; )
I had this same error, and it turned out I was merely assuming all PDFs in our collection from this particular screen would have fields. It turned out that was not the case and that we had clients with certain pdfs that had no fields at all. So just add a null check to make sure AcroForm is not null and you should be good to go.