0

如何为 PDF 表单中存在的每个字段设置定义值,考虑到我的 PDF 表单中有 5 个字段,例如 2 个文本框(名字和姓氏)两个复选框(Check_1,Check_2),2 个单选按钮(男,Female) 然后最后我有另一个文本框(地址),现在我必须为每个字段定义或设置一个值,比如 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());
                      }

                }
            }
        }
4

2 回答 2

0

基于文档,我认为 getOnValue() 方法仅返回已检查或未检查的状态。您可以尝试 getPartialName()、getValue()、getFullyQualifiedName()、getAlternateFieldName() 或任何其他方法。

于 2013-02-12T07:37:54.177 回答
0

使用单选按钮,您必须弄清楚“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());
    }
}

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

希望这会有所帮助。

于 2016-08-12T20:43:05.517 回答