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