【问题标题】:How to set defined value for each field present in PDF Form using PDFBOX如何使用 PDFBOX 为 PDF 表单中存在的每个字段设置定义值
【发布时间】:2013-02-12 06:50:12
【问题描述】:

如何为 PDF 表单中存在的每个字段设置定义值, 考虑到我的 PDF 表单中有 5 个字段,例如 2 个文本框(名字和姓氏)、两个复选框(Check_1、Check_2)、2 个单选按钮(男、女),最后我有另一个文本框(地址) ,现在我必须为每个字段定义或设置一个值,比如 1 代表名字,2 代表姓氏,3 代表 Check_1,直到 7 代表地址 下面是为每个字段定义值的一段代码,但是在为单选按钮字段设置值时我遇到了一些问题 当涉及到男性和女性字段时,它为男性和女性显示“1”,其他字段显示正确的值

谁能帮帮我...

谢谢

List FieldTypes = form.getFields();
    PDField pdfFields;
        for (int i = 0; i < FieldTypes.size(); i++) {

            pdfFields = (PDField) FieldTypes.get(i);
            String type = null;

            if (pdfFields instanceof PDTextbox) {
                type = "TextBox";
                String iAsString = Integer.toString(i);
                pdfFields.setValue(iAsString);
                System.out.println("Text" + "   "+ pdfFields.getFullyQualifiedName());
             } else if (pdfFields instanceof PDCheckbox) {
                type = "CheckBox";
                String iAsString = Integer.toString(i);
                System.out.println(iAsString);
                System.out.println("CheckBox" + "   "+ pdfFields.getFullyQualifiedName());
            } else if (pdfFields instanceof PDRadioCollection) {

                List kids = pdfFields.getKids();
                for (Object kid : kids) {
                      if (kid instanceof PDCheckbox) {
                      PDCheckbox checkbox = (PDCheckbox) kid;
                      String Name = checkbox.getOnValue();
                      String iAsString = Integer.toString(i);
                      System.out.println(iAsString);
                      type = "RadioButton";
                      System.out.println("RadioButton"+"  "+checkbox.getOnValue());
                      }

                }
            }
        }

【问题讨论】:

  • 我什至添加了增量语句 i++ 它适用于单选按钮字段但它错过了最后一个字段

标签: java pdf pdfbox


【解决方案1】:

基于文档,我认为 getOnValue() 方法仅返回已检查或未检查等状态。可以试试getPartialName(),getValue(),getFullyQualifiedName(),getAlternateFieldName()等方法吗?

【讨论】:

    【解决方案2】:

    使用单选按钮,您必须弄清楚“On Values”是什么,类似于复选框。但是,单选按钮有多个 On 值,因此它是一种不同的方法。

    例如,如果我对一个单选按钮组运行此操作,您必须从检查储蓄或货币市场中进行选择,我们会看到以下打印:

    帐户类型(org.apache.pdfbox.pdmodel.interactive.form.PDRadioButton)

    单选按钮

    [储蓄、支票、货币市场]

    public void list(PDField field)
    {
        System.out.println(field.getFullyQualifiedName() + " (" + field.getClass().getName() +")");
    
        if(field instanceof PDRadioButton){
            System.out.println("Radio Button");
            System.out.println(((PDRadioButton) field).getOnValues());
        }
    }
    

    如果我想选中“正在检查”按钮,我会将字段的值设置为“正在检查”。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多