如何使用Java中的PDFBox检查PDF格式的单选按钮

时间:2013-02-06 09:08:40

标签: java pdf radio-button pdfbox

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

任何人都可以帮助我 谢谢

1 个答案:

答案 0 :(得分:2)

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

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

现在,如果这不起作用(我在早期版本中已经看到了一些关于它的嗡嗡声),另一种但不太理想的方法是获得无线电收集的所有孩子并迭代它们。您在有兴趣设置的check()小孩上拨打PDCheckbox,并在所有其他小组上致电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();
      }
   }
}