繁体   English   中英

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

[英]How to set defined value for each field present in PDF Form using PDFBOX

如何为PDF表单中的每个字段设置定义值,请考虑一下我的PDF表单中有5个字段,例如2文本框(名和姓),两个复选框(Check_1,Check_2),2个单选按钮(男) ,女性),最后我有另一个文本框(地址),现在我必须定义或设置一个值,每个字段说1表示姓氏,2表示姓氏,3表示Check_1,然后一直到7表示Address下面是一段代码,用于定义每个字段的值,但是当涉及到“男性”和“女性”字段时,我为单选按钮字段设置值时遇到了一些问题,它使其他字段的“男性”和“女性”显示为“ 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());
                      }

                }
            }
        }

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

使用单选按钮,您必须弄清楚“按值”是什么,类似于复选框。 但是,单选按钮有多个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());
    }
}

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

希望这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM