4

我有使用 Adob​​e Acrobat Standard DC 创建的带有 acroForm 的 PDF。

我使用 Java iText 5 填充了 Chekcbox 字段。当我在属性中创建它时,我将其复选框样式设置为“检查”,以便在选中时放置“V”样式符号。 在此处输入图像描述

如果我在预览模式下打开表单并选中此复选框,它确实有效: 在此处输入图像描述

但是当我使用 iText 5 将此字段设置为选中状态时,它会检查它是否为 Cross: 在此处输入图像描述

我不明白为什么它会改变风格?

我的代码很简单:

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);
            } 
        }
    }
4

1 回答 1

1

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

   ...
    form.setField(searchKey, value, true);
   ...
于 2019-05-16T15:32:31.183 回答