Сообщество iText7-сообщества AcroFields разорвано на равнине - PullRequest
0 голосов
/ 10 мая 2018

Я создал PDF с помощью Master PDF Editor, содержащего одно текстовое поле формы. При манипулировании этим файлом PDF с помощью iText7-Community мне удается найти это поле и установить его значение. Однако при выравнивании выходного файла PDF это поле разрывается и просто исчезает.

Итог: поле отображается нормально без выравнивания и исчезает при выравнивании.

Я набрал isXfaPresent() из XfaForm, и ответ был false, поэтому я понимаю, что это действительно AcroForm.

Итак, вот что я попробовал:

PdfReader reader = new PdfReader("path-to-file.pdf");
PdfWriter writer = new PdfWriter("path-to-dest-file.pdf");
PdfDocument doc = new PdfDocument(reader, writer);

PdfAcroForm form = PdfAcroForm.getAcroForm(doc, false);
form.getField("treinamento").setValue(param);
System.out.println("----> " + form.getField("treinamento").value);
form.flattenFields();
doc.close();

System.out показывает правильную настройку значения, но выходной файл не показывает его. Если я прокомментирую form.flattenFields(), это так.

Любая помощь в том, что я должен сделать, чтобы это исправить, очень ценится.

1 Ответ

0 голосов
/ 14 мая 2018

Попробуйте позвонить form.getField("treinamento").regenerateField(); после вашего звонка на setValue(...)

PdfReader reader = new PdfReader("path-to-file.pdf");
PdfWriter writer = new PdfWriter("path-to-dest-file.pdf");
PdfDocument doc = new PdfDocument(reader, writer);

PdfAcroForm form = PdfAcroForm.getAcroForm(doc, false);
form.getField("treinamento").setValue(param);
System.out.println("----> " + form.getField("treinamento").value);
form.getField("treinamento").regenerateField();
form.flattenFields();
doc.close();
...