Получение acroForms из PDDocument - PullRequest
       14

Получение acroForms из PDDocument

0 голосов
/ 11 октября 2018

В результате миграции 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);

возвращает ноль при

final COSDictionary acroForm = (COSDictionary) root.getDictionaryObject(COSName.ACRO_FORM);

InputStream действителен, первые строкиработа.

1 Ответ

0 голосов
/ 12 октября 2018

Проблема решена.

Если у кого-то действительно есть подобные проблемы:

AcroForm существует, только если в pdf есть интерактивные формы.

В моем случае не подписанные PDF-файлы не имеют AcroForms, поэтому метод возвращает корректно
null
и выдает
NullPointerException в
final COSArray fields = (COSArray) acroForm.getDictionaryObject(COSName.FIELDS);.

...