如何使用现有形式的iText将复选框样式设置为“检查”?

时间:2018-01-12 02:23:57

标签: java itext acrofields

我的PDF是使用Adobe Acrobat Standard DC创建的acroForm。

我使用Java iText 5填充了Chekcbox字段。 当我在属性中创建它时,我将其设置为“检查”,以便在选中时将“V”样式符号设置为“检查”。 enter image description here

如果我在预览模式下打开表单并检查此CheckBox,它确实有效: enter image description here

但是当我使用iText 5将此字段设置为检查状态时,它会检查它是否为Cross: enter image description here

我无法弄清楚它为什么会改变风格?

我的代码很简单:

void populateCheckBox(AcroFields form, String searchKey, String value) throws IOException, DocumentException {

        if (form.getFieldType(searchKey) == AcroFields.FIELD_TYPE_CHECKBOX) {

            String[] states = form.getAppearanceStates(searchKey);              
            if (ArrayUtils.contains(states, "On") && ArrayUtils.contains(states, "Off")) {
                value = (value.equals("1")) ? "On" : "Off";
                form.setField(searchKey, value);
            } 
        }
    }

1 个答案:

答案 0 :(得分:1)

最新答案,但是您只需将第三个布尔参数传递给setField函数即可保存默认外观

   ...
    form.setField(searchKey, value, true);
   ...