如何确定复选框的“已检查”值(来自GetAppearanceStates)

时间:2014-04-23 20:31:56

标签: itextsharp

我对复选框字段有疑问,始终确定用于检查状态的值。

我一直在搜索,并为iText in Action手册支付了50美元,并搜索了它。这本书很棒,但没有回答这个问题。

我知道调用GetAppearanceStates(fieldName)来获取特定字段的可能值的域,并且知道调用SetField(fieldName,value)来检查该框。

我的问题是:我如何明确地知道GetAppearanceStates返回的值是“检查”值,还是我需要用来检查字段的值?

公平地说,我见过的大多数表单使用的值如下:True,False,On,Off,Yes,No ......但如果我理解正确,PDF的创建者可以指定任意值。 / p>

有没有办法确定GetAppearanceStates返回的值的哪一个是“检查”值?

我看到的例子似乎表明数组中的第一个元素将是检查它的那个,但显然这只是我在示例中读得太多,因为我遇到了第一个元素是“关闭”(第二个是“是”)。在我深入研究并编写显式查找字符串值的代码之前,如True,Yes,On,Oui,Yuppers,Check ......或其他什么,我想我会看看是否有更好的方法!我真的希望我错过了什么。

同样,我只在这里使用复选框字段。

感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:2)

ISO 32000-1:2008(“PDF 1.7规范”)在12.7.4.2.3(“复选框”)中说:

  

关闭状态的外观是可选的,但如果存在,则应为   存储在名称关闭的外观字典中。   应该用作开启状态的名称。

因此,如果出现未检查状态,则必须关闭。选中状态的是建议;它的名称可以不同。

如果2个任意名称用于选中和未选中,则无法可靠地确定哪个应该用于选中,哪个用于未选中。