有没有办法使用追加模式在启用阅读器的LiveCycle PDF上使用itext 7插入XFA表单值?

时间:2017-01-18 05:08:23

标签: itext itext7

我需要使用iText 7将XFA表单字段值输入到支持LiveCycle阅读器的PDF中。我可以成功完成此操作但是如果我没有在附加模式下打开PDF,则会出现Adobe签名被破坏且表单用户无法进一步编辑值并再次保存。如果我在附加模式下使用iText 7打开PDF并更改XFA表单字段值,则启用阅读器的签名不会被破坏,但更改的值不会显示在表单上。这似乎是iText 7的一个错误,并且可能使用追加模式更改XFA表单字段值。有没有人成功地做到了这一点?

1 个答案:

答案 0 :(得分:1)

iText7中以附加模式填写XFA表单时出现错误。这已在7.0.2(和7.0.2-SNAPSHOT)修复。

在追加模式中填写表格,您需要以下代码:

PdfDocument pdfdoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(DEST), 
                                         new StampingProperties().useAppendMode());

PdfAcroForm form = PdfAcroForm.getAcroForm(pdfdoc, true);
XfaForm xfa = form.getXfaForm();
xfa.fillXfaForm(new FileInputStream(XML));
xfa.write(pdfdoc);

pdfdoc.close();