【问题标题】:How to check a radiobutton in PDF form using PDFBox in Java如何使用 Java 中的 PDFBox 检查 PDF 表单中的单选按钮
【发布时间】:2013-01-21 10:10:50
【问题描述】:

如何使用 Java 中的 PDFbox 检查表单中的单选按钮 - PDf

我有一段用于检查复选框的代码,但无法使用 类 PDRadioCollection

 PDDocument fdeb = null;

        fdeb = PDDocument.load("C:\\Users\\347702\\Desktop\\complaintform.pdf");

        PDAcroForm form = fdeb.getDocumentCatalog().getAcroForm();
        PDField feld3 = form.getField("loan");
        ((PDCheckbox) feld3).check();
        fdeb.save("C:\\Users\\347702\\Desktop\\complaintform.pdf");
        fdeb.close();

谁能帮帮我 谢谢

【问题讨论】:

    标签: java pdf radio-button pdfbox


    【解决方案1】:

    解决方案应该如下。获取无线电集合字段的名称,而不是您尝试设置的特定按钮字段,然后设置需要设置的复选框字段的值。 setValue() 方法应该取消选中所有其他值。

    PDRadioCollection coverage = theForm.getField("radio collection");
    coverage.setValue("loan");
    

    现在,如果这不起作用(并且我在早期版本中看到了一些关于此的嗡嗡声),另一种但不太理想的方法是让收音机集合的所有孩子并遍历它们。您在您有兴趣设置的PDCheckbox 孩子上拨打check() 并在所有其他人上拨打unCheck()。所以是这样的:

    PDRadioCollection coverage = theForm.getField("radio collection");
    kids = coverage.getKids();
    for (Object kid : kids) {
       if (kid instanceof PDCheckbox) {
          PDCheckbox checkbox = (PDCheckbox) kid;
          String partialName = checkbox.getPartialName();
          if (partialName.equals("loan")) {
             checkbox.check();
          } else {
             checkbox.unCheck();
          }
       }
    }
    

    【讨论】:

    • +1,这有助于解决在使用 PDFBox 填写带有单选按钮的表单后出现“预期名称对象”错误的问题。如果我只是调用field.setValue(),则会选择正确的单选按钮,但是当我尝试提交表单时会出现错误。调用check() 方法解决了错误。谢谢。
    猜你喜欢
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 2020-10-11
    • 2017-02-02
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多