Java 为什么iText form.GetAppearanceState(键)方法为复选框字段返回不一致的值?
我有使用AdobeAcrobat标准DC创建的带有acroForm的PDF 我使用JavaIText5填充了一个Chekcbox字段。 我不明白为什么,IMHO,form.getAppearanceState(key)方法会为这个字段返回不一致的值Java 为什么iText form.GetAppearanceState(键)方法为复选框字段返回不一致的值?,java,itext,acrofields,Java,Itext,Acrofields,我有使用AdobeAcrobat标准DC创建的带有acroForm的PDF 我使用JavaIText5填充了一个Chekcbox字段。 我不明白为什么,IMHO,form.getAppearanceState(key)方法会为这个字段返回不一致的值 String[] states = form.getAppearanceStates(key); 为什么我发现它们不一致,因为值是: [“关闭”、“是”] 这些是默认值吗?每个表单创建软件是否有不同的默认值?为什么我会问这个问题,因为我的软件可以
String[] states = form.getAppearanceStates(key);
为什么我发现它们不一致,因为值是:
[“关闭”、“是”]
这些是默认值吗?每个表单创建软件是否有不同的默认值?为什么我会问这个问题,因为我的软件可以用于以多种不同方式创建的文档。我正在努力解决代码中的所有情况
我知道我可以在该字段的选项中更改导出值,但默认值始终为“是”?是否默认未选中值将始终为“关闭”
IMHO中的一致值如下所示:
[“开”、“关”]
或
[“是”、“否”]此“不一致性”基于PDF格式,因此,规范强制未检查状态命名为Off,而检查状态的名称可以自由选择,并且在一个示例中,它使用Yes作为检查状态的名称:
关闭状态的外观是可选的,但如果存在,应以名称off存储在外观字典中
示例1此示例显示了一个典型的复选框定义
1 0 obj
<</Type /Annot
/Subtype /Widget
/Rect [100 100 120 120]
/FT /Btn
/T (Urgent)
/V /Yes
/AS /Yes
/AP <</N <</Yes 2 0 R /Off 3 0 R>>
>>
endobj
10对象
感谢mkl,为充分部署的答案!你能不能也看看这个问题:?很抱歉,我找不到其他方式向您发送消息。我会看一看(事实上,我已经将其标记为最喜欢的,以便记住查看它…)