Java iText7社区在平地上被撕裂

Java iText7社区在平地上被撕裂,java,pdf,itext,pdf-generation,Java,Pdf,Itext,Pdf Generation,我用主PDF编辑器创建了一个PDF,其中包含一个表单文本字段。 当使用iText7 Community处理该PDF文件时,我设法找到该字段并设置其值。但是,当我展平输出PDF文件时,该字段被撕开并消失 底线:字段显示精细,没有展平,展平时消失 我从XfaForm运行了isXfaPresent(),响应是false,因此我知道它确实是AcroForm 这就是我所尝试的: PdfReader reader = new PdfReader("path-to-file.pdf"); PdfWriter

我用主PDF编辑器创建了一个PDF,其中包含一个表单文本字段。 当使用
iText7 Community
处理该PDF文件时,我设法找到该字段并设置其值。但是,当我展平输出PDF文件时,该字段被撕开并消失

底线:字段显示精细,没有展平,展平时消失

我从
XfaForm
运行了
isXfaPresent()
,响应是
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.flattFields()
它会注释


非常感谢您对我如何解决此问题的任何帮助。

请尝试调用
form.getField(“treinamento”).regenfield()setValue(…)


听起来像是@BrunoLowagie的复制品,不是。我忘了提到我正在使用itext7社区。刚刚更新了问题。感谢您的评论。由于时间限制,我们最终使用Scribus而不是PDF主编辑器创建了PDF模板。很抱歉,无法测试您的建议,但感谢您前来帮助。
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();