如何使用 itext7 库获取有关复选框的信息?

How to get information about checkbox using itext7 library?

我需要获取有关 Checkbox 的信息,例如复选框标记(十字、圆形等)、已选中、未选中等等。但是如果在这个文件中没有 XFA 信息,我不明白这些信息保存在哪里。此文件是通过 Adobe Acrobat Pro DC 19.21.20049 创建的。我试图使用 pdfbox tool 查找此信息,但没有找到。那是checkbox信息的截图:

任何人都可以向我解释如何获取此信息以及我必须在哪里找到它吗?

对于 any PdfFormField field 的值,您可以像这样检索该值:

PdfObject value = field.getValue();

如果是复选框字段,这将 return 一个 PdfName。对于未选中的字段,名称为 Off。对于选中的字段,它可以是任何其他内容,即使规范建议 Yes.


这些状态的外观更难确定,因为至少对于选中状态,复选框必须提供包含创建可视化指令的外观流。

我们分析了一个这样的流 。在那种情况下,使用了 ZapfDingbats 刻度符号,您可以将文本提取应用于流并确定这一点。

在其他情况下,例如如果是打勾的复选框,通常只使用矢量图形指令。

不过,也可以在此处使用可能显示任何内容的位图图像。

因此,虽然您当然可以将外观流与由例如生成的标准外观进行比较。 Adobe Acrobat 等识别很多复选框字段的外观,你将无法自动识别所有。