[英]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.