我对复选框字段有疑问,始终确定用于检查状态的值。
我一直在搜索,并为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 ......或其他什么,我想我会看看是否有更好的方法!我真的希望我错过了什么。
同样,我只在这里使用复选框字段。
感谢您提供任何帮助!
答案 0 :(得分:2)
ISO 32000-1:2008(“PDF 1.7规范”)在12.7.4.2.3(“复选框”)中说:
关闭状态的外观是可选的,但如果存在,则应为 存储在名称关闭的外观字典中。 是强> 应该用作开启状态的名称。
因此,如果出现未检查状态,则必须关闭。选中状态的是是建议;它的名称可以不同。
如果2个任意名称用于选中和未选中,则无法可靠地确定哪个应该用于选中,哪个用于未选中。