Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用itext7库获取有关复选框的信息?_Java_Itext7 - Fatal编程技术网

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

Java 如何使用itext7库获取有关复选框的信息?,java,itext7,Java,Itext7,我需要获取有关复选框的信息,例如,复选框标记(十字、圆圈等)、选中、未选中等等。但是如果在这个文件中没有XFA信息,我就无法理解这些信息保存在哪里。此文件是通过Adobe Acrobat Pro DC 19.21.20049创建的。我试图使用pdfbox工具查找此信息,但没有找到。这是复选框信息的屏幕截图: 有人能给我解释一下如何获取此信息以及我必须在哪里找到它吗?对于任何带有值的PdfFormField,您可以像这样检索该值: PdfObject value = field.getValue

我需要获取有关复选框的信息,例如,复选框标记(十字、圆圈等)、选中、未选中等等。但是如果在这个文件中没有
XFA
信息,我就无法理解这些信息保存在哪里。此文件是通过Adobe Acrobat Pro DC 19.21.20049创建的。我试图使用
pdfbox工具
查找此信息,但没有找到。这是复选框信息的屏幕截图:

有人能给我解释一下如何获取此信息以及我必须在哪里找到它吗?

对于任何带有值的
PdfFormField
,您可以像这样检索该值:

PdfObject value = field.getValue();
如果是复选框字段,则返回
PdfName
。对于未选中的字段,名称为关闭。对于选中字段,它可以是任何其他字段,即使规范建议


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

我们分析了一条这样的流。在这种情况下,使用了ZapfDingbats记号符号,您可以对流应用文本提取并确定这一点

在其他情况下,例如在交叉复选框的情况下,通常仅使用矢量图形指令

不过,也可以在这里使用位图图像,它可以显示任何内容


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

您说PDFBox没有提供所需的信息,但是对于屏幕截图中的结构,PDFBox通常能够正确识别表单字段。因此,要么您使用PDFBox在代码中出错,要么您的PDF有可疑之处阻碍了PDFBox返回数据,要么您想要的“等等”包含PDFBox未提供的信息。因此,请分享实际的PDF(以便我们可以检查我们的建议),并解释“等等”。如果您对PDFBox代码不起作用的原因感兴趣,请另外共享该代码。@mkl I使用
itext7 7.0.4
库,我需要获取有关复选框(选中、未选中)、标记类型(十字、圆圈等)的信息但是在
adobeacrobat
中创建的pdf文件不包含
XFA
,我不知道如何以其他方式获取这些信息。你能帮我吗?请决定是使用itext还是pdfbox。在外观流中可以看到它是显示为十字还是圆形,因此这很棘手。@TilmanHausherr I使用
itext 7.0.4
library
PdfBox
它只是一个解析pdf文件并显示其结构的工具,如上面的屏幕截图所示。似乎您编写了自己的PDFDebugger应用程序。或者这是一个较旧的PDFBox版本,而您使用的是PDFBox PDFDebugger?因为现在的PDFDebugger看起来好多了。