Как использовать itext для отправки PDF формы - PullRequest
0 голосов
/ 07 июня 2018

После прочтения многих стековых потоков и перепробования многих решений я застрял с этим:

Я получаю PDF, который не могу изменить, и мне нужно автоматически его обработать.PDF представляет собой PDF-форму с 2 полями и кнопкой отправки.Следующий код показывает, что я пришел к тому, что мне нужно сделать:

public static final String SRC = "C:\\Dev\\test.pdf";
public static final String DEST = "C:\\Dev\\test_result.pdf";
public static final String DATA = "C:\\Dev\\data.xml";

File file = new File(DEST);
PdfReader reader = new PdfReader(SRC);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(DEST));
AcroFields form = stamper.getAcroFields();
XfaForm xfa = form.getXfa();
xfa.fillXfaForm(new FileInputStream(DATA));

Это дает нулевой указатель:

Exception in thread "main" java.lang.NullPointerException
at com.itextpdf.text.pdf.XfaForm.fillXfaForm(XfaForm.java:1168)
at com.itextpdf.text.pdf.XfaForm.fillXfaForm(XfaForm.java:1146)
at com.itextpdf.text.pdf.XfaForm.fillXfaForm(XfaForm.java:1134)
at com.itextpdf.text.pdf.XfaForm.fillXfaForm(XfaForm.java:1131)

Я могу получить и установить поля в форме с помощьюэтот код:

AcroFields fields = reader.getAcroFields();
fields.setField("pdfForm.loginUser", "myemail@domain.com");
fields.setField("pdfForm.loginPass", "mypassword");

Как преобразовать Acrofields в XfaForm?

...