如何使用itext提交PDF表单

时间:2018-06-07 04:59:48

标签: itext pdf-generation

在阅读了很多stackoverflow并尝试了很多解决方案后,我坚持这一点:

我收到的PDF无法更改,需要自动处理。 PDF是一个包含2个字段和提交按钮的PDF表单。 以下代码是关于我需要做的事情:

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?

0 个答案:

没有答案