【问题标题】:How to get the Radio button values from PDF form using PDFbox (C#)如何使用 PDFbox (C#) 从 PDF 表单中获取单选按钮值
【发布时间】:2013-02-02 18:06:55
【问题描述】:

如何使用 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# - 在 List kids 下它保存子值.. 但是当我尝试打印该特定值时它没有这样做,它返回 null

标签: c# java pdf pdfbox


【解决方案1】:

终于搞定了:这里是:: C#:需要用 IEnumerable 输入大小写:

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

【讨论】:

    猜你喜欢
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 2021-06-26
    • 2012-01-04
    • 1970-01-01
    相关资源
    最近更新 更多