为什么 iText form.getAppearanceStates(key) 方法 return 复选框字段的值不一致?
Why iText form.getAppearanceStates(key) method return inconsistent values for Check Box field?
我有使用 Adobe Acrobat Standard DC 创建的带有 acroForm 的 PDF。
我使用 Java iText 5 填充了 Chekcbox 字段。
而且我不明白为什么,恕我直言,form.getAppearanceStates(key) 方法 return 这个字段的值不一致。
String[] states = form.getAppearanceStates(key);
为什么我发现它们不一致,因为值是:
["Off", "Yes"]
这些是默认值吗?每个表单创建软件都有不同的默认值吗?为什么我会问这个问题,因为我的软件可以用于以多种不同方式创建的文档。我正在尝试解决我代码中的所有情况。
我知道我可以在此字段的选项中更改导出值,但默认值总是 "Yes" 吗?并且默认未选中的值将始终为 "Off"?
恕我直言,一致的价值观如下:
["On", "Off"]
要么
["Yes", "No"]
这个"inconsistency"是基于PDF格式的,规范强制未选中状态命名为Off,而选中状态的名称可以自由选择,在一个示例中,它使用 Yes 作为选中状态的名称:
The appearance for the off state is optional but, if present, shall be stored in the appearance dictionary under the name Off.
...
EXAMPLE 1 This example shows a typical check box definition.
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 节 "Check boxes")
关于您的问题,因此:
Are these default values? Does each form creation software has different default values?
一个复选框状态总是Off,勾选状态的名称可以自由选择,但可能很多表单会按照上面的例子使用Yes。因此,希望经常找到 Yes,但要准备好处理任何事情。
我有使用 Adobe Acrobat Standard DC 创建的带有 acroForm 的 PDF。
我使用 Java iText 5 填充了 Chekcbox 字段。 而且我不明白为什么,恕我直言,form.getAppearanceStates(key) 方法 return 这个字段的值不一致。
String[] states = form.getAppearanceStates(key);
为什么我发现它们不一致,因为值是: ["Off", "Yes"]
这些是默认值吗?每个表单创建软件都有不同的默认值吗?为什么我会问这个问题,因为我的软件可以用于以多种不同方式创建的文档。我正在尝试解决我代码中的所有情况。
我知道我可以在此字段的选项中更改导出值,但默认值总是 "Yes" 吗?并且默认未选中的值将始终为 "Off"?
恕我直言,一致的价值观如下: ["On", "Off"] 要么 ["Yes", "No"]
这个"inconsistency"是基于PDF格式的,规范强制未选中状态命名为Off,而选中状态的名称可以自由选择,在一个示例中,它使用 Yes 作为选中状态的名称:
The appearance for the off state is optional but, if present, shall be stored in the appearance dictionary under the name Off.
...
EXAMPLE 1 This example shows a typical check box definition.
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 节 "Check boxes")
关于您的问题,因此:
Are these default values? Does each form creation software has different default values?
一个复选框状态总是Off,勾选状态的名称可以自由选择,但可能很多表单会按照上面的例子使用Yes。因此,希望经常找到 Yes,但要准备好处理任何事情。