У меня возникла проблема с попыткой установить некоторые из полей с помощью Apache PDFBOX (1.8.5). У меня есть несколько разных статических PDF файлов, которые я использую для тестирования. Используя следующий код, я могу установить значения полей формы и сохранить полученный PDF. Затем я могу открыть этот PDF-документ в Adobe Reader и посмотреть результаты:
PDDocumentCatalog docCatalog = pdfDocument.getDocumentCatalog();
pdfTemplate.setAllSecurityToBeRemoved(true);
PDAcroForm acroForm = docCatalog.getAcroForm();
List fields = acroForm.getFields();
Iterator fieldsIter = fields.iterator();
while( fieldsIter.hasNext())
{
PDField field = (PDField)fieldsIter.next();
if(field instanceof PDTextbox){
((PDTextbox)field).setValue("STATIC PDFBOX EDIT");
}
}
И затем я в конечном итоге сохраняю форму. Для статических PDF файлов:
- Версия PDF: 1.6 (Acrobat 7.x)
- Версия PDF: 1.7 (Acrobat 8.x)
Это работает отлично. Я могу открыть Документы в Adobe Reader XI и увидеть правильные значения в форме.
Для статических PDF файлов:
- Версия PDF: 1.7 Уровень расширения Adobe 3 (Acrobat 9.x)
- Версия PDF: 1.7 Уровень расширения Adobe 8 (Acrobat X)
- Версия PDF: 1.7 Уровень расширения Adobe 11 (Acrobat XI)
Кажется, что это не работает. Когда я открываю полученные формы в Adobe Reader XI, поля, похоже, не заполняются. Но если я открою PDF файл в браузере Firefox Firefox или браузера Chrome, поля будут отображаться как заполненные там.
Как установить эти поля, чтобы значения отображались при просмотре в Adobe Reader XI?
EDIT: Примеры PDF файлов можно найти здесь: https://github.com/bamundson/PDFExample