我的PDF是使用Adobe Acrobat Standard DC创建的acroForm。
我使用Java iText 5填充了Chekcbox字段。 当我在属性中创建它时,我将其设置为“检查”,以便在选中时将“V”样式符号设置为“检查”。
如果我在预览模式下打开表单并检查此CheckBox,它确实有效:
但是当我使用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);
}
}
}
答案 0 :(得分:1)
最新答案,但是您只需将第三个布尔参数传递给setField函数即可保存默认外观
...
form.setField(searchKey, value, true);
...