1

如何使用 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();

谁能帮帮我谢谢

4

1 回答 1

4

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

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

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

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();
      }
   }
}
于 2013-02-08T18:10:30.293 回答