当前位置: 首页 > 知识库问答 >
问题:

如何使用PDFBOX为PDF表单中的每个字段设置定义值

羊舌胡非
2023-03-14

如何为PDF表单中的每个字段设置定义值,假设我的PDF表单中有5个字段,例如2个文本框(名字和姓氏)和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());
                      }

                }
            }
        }

共有1个答案

谭畅
2023-03-14

基于doc,我认为getOnValue()方法只返回像checked或not checked这样的状态。您是否可以尝试getPartialName()、getValue()、getFullyQualifiedName()、getAlternateFieldName()或任何其他方法。

 类似资料:
  • 我正在使用Apache PDFBox来读取一个可填充的PDF表单,并根据一些数据填充字段。我使用下面的代码(根据其他SO答案的建议)来获得默认的外观字符串并更改它(正如您在下面看到的,如果字段名是“field1”,我将字体大小从10更改为12。 如何加粗字段?是否有关于/HELV 10 Tf 0 g的排列顺序的文件?我需要设置什么来粗体字段? 如果我理解正确,有14种基本字体,我可以在PDFBox

  • 如何使用pdfbox获取PDF表单中存在的字段类型。我的意思是,如果单选按钮和检查按钮出现在PDF表单中,它应该返回我单选按钮或检查按钮,但使用getFieldType()方法,我只能为文本框返回“txt”,而对于单选/检查框,它返回-“btn”。 但我需要区别的按钮是,无论是收音机或复选框或它的一个按钮,可以帮助我的任何一个请谢谢

  • 我正在尝试将pdf字段与行中的第一个字段对齐。我能得到磁场和它的位置。我也可以在本地更改它,但当我保存pdf时,字段显示在同一位置。以下是代码:

  • 我是新的PDF框,需要填写的信息在PDF表单,其中有节和字段名: 填写信息的名称和框 地址和填写信息的框 城市框来填充信息。 目前没有错误上面的代码正在工作填写一些垃圾字段。 需要用方框信息填满姓名,方框信息填满姓名,方框信息填满地址,方框信息填满地址,方框信息填满地址

  • Cosmos存储过程将每个记录的PumperID字段设置为默认值会是什么样子? 我们需要这样做来修复一些数据,因此该过程将访问每个具有PumperID字段的记录(并非所有文档都有此字段),并将其设置为默认值。

  • PDF版本:1.6(Acrobat 7.x) PDF版本:1.7(Acrobat 8.x) 这个很好用。我可以在Adobe Reader XI中打开文档,并在表单中看到正确的值。 对于以下的静态PDF: null