簡體   English   中英

如何使用PDFbox(C#)從PDF表單獲取單選按鈕值

[英]How to get the Radio button values from PDF form using PDFbox (C#)

如何使用PDFbox(C#)從PDF表單獲取單選按鈕值

在Java中:

     doc = PDDocument.load("C:\\Users\\347702\\Desktop\\sample_form.pdf");
            List pages = doc.getDocumentCatalog().getAllPages();
            PDAcroForm form = doc.getDocumentCatalog().getAcroForm();
            List FieldTypes =  form.getFields();
            PDField pdfFields;

            for (int i = 0; i <  FieldTypes.size(); i++) {

              pdfFields = (PDField) ((List) FieldTypes).get(i);
              if (pdfFields instanceof PDRadioCollection) 
                 {
                    String iAsString = Integer.toString(k);
                    System.out.println(iAsString);
                    type = "RadioButton";
                    System.out.println("Radio Button" + "   "
                            + pdfFields.getFullyQualifiedName() + "  ");

                    List kids = pdfFields.getKids();
                    for (Object kid : kids) {
                          if (kid instanceof PDCheckbox) {
                          PDCheckbox checkbox = (PDCheckbox) kid;
                          String Name = checkbox.getOnValue();
                          System.out.println(Name);
                          }
                    }

上面的Java代碼已成功運行(成功返回了Radiobuttons的子代),但是當在c#中實現相同的邏輯時,其未按預期運行

以下是我的C#代碼:

                else if (pdfFields is PDRadioCollection)
                {
                    System.Console.WriteLine("Radio Button" + "   "
                            + pdfFields.getFullyQualifiedName() + "  ");

                  List kids = pdfFields.getKids();
                    System.Console.WriteLine(kids);

                   for (int w = 0; w < kids.size(); w++)
                   {
                       kids.get(w);
                       System.Console.WriteLine(kids.get(w));  ---- > Return null 

                       System.Console.WriteLine(kids.get(w).ToString()); -- > Return null
                   }  

                } 

可以幫忙嗎,謝謝

最后工作了:在這里是:: C#:需要使用IEnumerable鍵入case:

                else if (pdfFields is PDRadioCollection)
                {
                    System.Console.WriteLine("Radio Button" + "   "
                            + pdfFields.getFullyQualifiedName() + "  ");

                    System.Collections.IEnumerable kids = (System.Collections.IEnumerable)pdfFields.getKids();
                    System.Console.WriteLine(kids);

                    foreach (object kid in kids)
                    {
                        PDCheckbox checkbox = (PDCheckbox)kid;
                         checkbox.check();
                    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM