2013-02-06 27 views
1

如何檢查表格單選按鈕 - 在Java中如何檢查使用PDFBox的PDF格式一個單選按鈕在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(); 

任何一個可以幫助我 感謝

回答

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(); 
     } 
    } 
} 
+0

感謝demongolem工作fineeeeeeee – Ganeshja

+0

+1,這有助於解決您在使用PDFBox的填寫與單選按鈕的形式後,我得到了「預期的Name對象」錯誤的問題。如果我只是調用'field.setValue()',將會選中正確的單選按鈕,但當我嘗試提交表單時會出現錯誤。調用check()方法解決了錯誤。謝謝。 –

相關問題