0

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

我使用 Java iText 5 填充了 Chekcbox 字段。我不明白为什么,恕我直言,form.getAppearanceStates(key) 方法为此字段返回不一致的值。

String[] states = form.getAppearanceStates(key); 

为什么我发现它们不一致,因为值是: [“Off”,“Yes”]

这些是默认值吗?每个表单创建软件都有不同的默认值吗?为什么我要问这个问题,因为我的软件可以用于以多种不同方式创建的文档。我正在尝试解决我的代码中的所有情况。

我知道我可以在此字段的选项中更改导出值,但默认值是否始终为“是”?并且默认未选中的值将始终为“关闭”吗?

恕我直言,一致的值如下:["On", "Off"] 或 ["Yes", "No"]

4

1 回答 1

1

这种“不一致”是基于 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

(ISO 32000-2:2017,第 12.7.5.2.3 节“复选框”)

因此,关于您的问题:

这些是默认值吗?每个表单创建软件都有不同的默认值吗?

一个复选框状态始终为Off,选中状态的名称可以自由选择,但可能许多表单将遵循上面的示例并使用Yes。因此,期望经常找到“是” ,但要准备好处理任何事情。

于 2018-01-12T10:18:26.767 回答