После прочтения многих стековых потоков и перепробования многих решений я застрял с этим:
Я получаю 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?