iText7-社区AcroField被平铺

时间:2018-05-10 15:35:42

标签: java pdf itext pdf-generation

我使用包含一个表单文本字段的Master PDF Editor创建了一个PDF。 使用iText7-Community操作该PDF文件时,我设法找到该字段并设置其值。但是,当我展平输出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 :(得分:0)

致电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();