Itext 如何从PdfAnnotation中提取PdfFormField的fieldname

Itext 如何从PdfAnnotation中提取PdfFormField的fieldname,itext,formfield,Itext,Formfield,因此,我使用这个PdfFormField.createRadioButton()创建了一个单选组,然后调用setFieldName() 但是,PdfAnnotation不显示存储字段名的任何键。我查看了PDF目录中的其他词典,但没有找到 reader.getAcroFields().getFields().keySet()确实列出了表单字段的字段名,但我想问一下是否有任何方法可以通过PdfAnnotation 我试图在单选组对象中放置自定义PdfName,但它没有显示在PdfAnnotation

因此,我使用这个PdfFormField.createRadioButton()创建了一个单选组,然后调用setFieldName()

但是,PdfAnnotation不显示存储字段名的任何键。我查看了PDF目录中的其他词典,但没有找到

reader.getAcroFields().getFields().keySet()确实列出了表单字段的字段名,但我想问一下是否有任何方法可以通过PdfAnnotation


我试图在单选组对象中放置自定义PdfName,但它没有显示在PdfAnnotation的字典中。

您混淆了批注(链接批注、文件附件批注、小部件批注等)和表单字段(文本字段、选择字段、按钮字段、签名字段)的概念

在iText 5中,注释在名为
PDFanRotation
的类中处理;表单字段在名为
PdfFormField
的类中处理。您正在尝试使用类
pdfantotation
执行特定于
PdfFormField
的操作。那是错误的

我理解混乱的根源:每个可见表单字段至少对应一个小部件注释。大多数可见表单字段只对应一个小部件注释。这就是为什么我们在iText 5中选择了
PdfFormField
extends
pdfantation

此设计选择符合PDF规范,其中说明与单个小部件注释对应的字段的字段字典可以合并到单个PDF字典中

在实践中,您将在PDF中找到PDF字典,它结合了小部件注释字典和字段字典的典型条目。(这也解释了为什么iText中有一个
getMerged()
方法:该方法获取合并的dictionary对象。)


我希望这已经解释了你的部分问题。你似乎还有另一个问题,但我不明白你想做什么。请使用ISO-32000-1的参考资料进行澄清,以便人们了解您试图实施的技术功能。

你好,布鲁诺,感谢您的澄清。当我使用RadioCheckField创建复选框时,我在注释字典中找不到字段名,但我可以在字段中找到它。我相信我找到了我要找的东西。非常感谢。