当前位置: 首页 > 知识库问答 >
问题:

获取复选框pdfbox的导出值

柏高洁
2023-03-14

我无法检索PDFBox中复选框的导出值。我用的是PDFBox v2。0.21. 我需要导出值,因为我需要知道每个复选框字段在另一个应用程序中映射到什么。

复选框具有相同的部分名称,但导出值不同。这里有一个pdf示例。

如果我在字段中调用“getExportValues”,我将获得复选框组[“a”、“b”]的所有可用复选框导出选项。e、 g.((PDCheckBox)字段)。getExportValues()//返回[“a”、“b”]是否有方法确定哪个导出值属于当前字段?

如果我调用“getOnValue”,它将返回“0”(它会对所有复选框字段执行此操作)。e、 g.onValue=((PDCheckBox)字段)。getOnValue()//返回“0”无论我在看哪个字段,它都返回“0”。

如果我调用字段。check()它抛出“java”。lang.IllegalArgumentException'异常(我认为这是因为它使用的是“0”而不是“a”或“b”)。

如果我用“a”或“b”调用field.setValue(),它们都成功地用于该字段,所以不清楚还可以尝试哪些其他选项。我尝试了这种方法,希望我能确定哪个导出值属于我当前查询的字段。

如果您对以上内容有任何见解,请告诉我。

更新:进一步调试后,每个字段似乎都有两个与之关联的小部件(因此,如果field checkbox具有相同的名称,则它有多个小部件)。将附加复选框添加到pdf会导致与每个字段关联的3个小部件。如果我使用字段。getWidgets()。得到(1)。词典getCOSObject(COSName.AP)。getDictionaryObject(COSName.N)并获取未“关闭”的键(如本文所述),然后返回“1”,我假设它是小部件导出值(来自getExportValues)的索引,但是我看不到确定哪个小部件属于我当前查看的字段的方法。

谢谢你,罗布

共有1个答案

严景焕
2023-03-14

在进一步的调试中,我发现如果复选框字段共享相同的值,则只有1个Adobe字段与之关联。

因此,为了获得导出值,我循环遍历每个字段的小部件,并使用此代码获得每个小部件的“onValue”。

    PDAppearanceDictionary apDictionary = widget.getAppearance();
    String onValue = "";
    if(apDictionary!=null)


    PDAppearanceEntry normalAppearance = apDictionary.getNormalAppearance();
    if (normalAppearance != null) {
        Set<COSName> entries = normalAppearance.getSubDictionary().keySet();
        Iterator var6 = entries.iterator();

        while (var6.hasNext()) {
            COSName entry = (COSName) var6.next();
            if (COSName.Off.compareTo(entry) != 0) {
                onValue = entry.getName();
            }
        }
    }


   List<String> exportValues = ((PDCheckBox) field).getExportValues();

   String exportValue = exportValues.get(Integer.parseInt(onValue)); 
 类似资料:
  • 问题内容: 所以我得到的代码看起来像这样: 我只需要Javascript来获取当前选中的任何复选框的值。 编辑 :要添加,将只有一个复选框。 问题答案: 对于现代浏览器 : 通过使用: 没有_以下内容的 _纯javascript :

  • 所以我有这样的代码: 我只需要Javascript来获取当前选中的任何复选框的值。 编辑:要添加,只有一个复选框。

  • 问题内容: 我想获取Flask中复选框的值。我读过一篇类似的文章,并尝试使用和的输出,因为这是我使用的列表,但看来我做错了。这是获取输出的正确方法还是有更好的方法? 问题答案: 你并不需要使用,只是如果只有一个给定名称的输入,尽管它不应该的事。你显示的内容确实有效。这是一个简单的可运行示例: 提交带有两个复选框的表单,然后在终端中打印。请注意,html表单的方法是,post因此数据将位于中。 在某

  • 问题内容: 我有6个选项,我想获取选中的值以将它们存储在第二页的变量中。我该怎么做呢? 和页面: 如果我删除,我会打开颜色,当我这样做时会收到一条通知,说: 数组到字符串的转换 我想要的是选中复选框的值,因此我可以将其存储在变量中。 问题答案: 我最喜欢的一种好方法,我敢肯定,很多人都会利用它来输出您选择的每种颜色,并在屏幕上彼此下方显示。 在使用复选框时,您别无选择,只能使用,这就是为什么只从数

  • 问题内容: 如何在jQuery中获得复选框的值? 问题答案: 要获取Value属性的值,您可以执行以下操作: 或者,如果您为其设置了或,则可以: 但是,无论是否选中它都会返回 相同的 值,这可能会造成混淆,因为它与提交的表单行为不同。 要检查是否已检查,请执行以下操作:

  • 你好,我是一个学生,我的项目是制作一个应用程序的android工作室。 我只是个初学者,所以每件事都很难:( 这是我的问题。 我动态创建的复选框取决于当前。 如果用户单击btnEx按钮,我想获得finalMemberTag。 但是在这段代码中,当我单击btnEx时,finalMemberTag为空。 如果用户单击复选框,我希望将复选框的文本添加到FinalMemberTag中。并且复选框未选中,则