acroform字段值在icepdf中不起作用

时间:2015-02-23 22:53:13

标签: java pdf itextpdf icepdf

我正在开发一个项目,该项目应该读取包含由Java代码填充的值的pdf文件/表单。

form.setField("permitnumber", p.getApplicationorno());
            form.setField("amountpaid", p.getAmount_app());
            form.setField("estimatedfeet", "56");
            form.setField("receiptnumber", "123415");
            form.setField("validity", "5");

现在我的问题是,在pdf表单的字段上设置的值在Adobe PDF Reader上完美运行,但在ICEPdf Viewer上却没有。我在这里缺少什么?为什么ICEPdf无法显示PDF格式的值?

1 个答案:

答案 0 :(得分:0)

使用iText设置字段值时,如果afAcroFields个实例,请尝试

af.setGenerateAppearances(true);
设置值之前


PDF规范ISO 32000-1定义了 NeedAppearances 标志,参见表218 - 交互式表单字典中的条目。如果设置为 true ,则PDF查看器知道必须为表单字段创建外观流。

如果标志不是 true ,iText会解释该标志并仅在填写表单时创建外观流(如果 true ,则期望观看者重新创建此类外观反正)。

Ooo至少用于创建PDF表单,并将该标志设置为 true 。如果 true ,Adobe Reader会尊重旗帜并创建外观。可能你的PDF查看器不尊重标志,可能它总是希望文档中已经存在外观。

使用setGenerateAppearances(true)可以强制生成外观流。如果上述假设是正确的,这应该可以解决您的问题。