如何为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());
}
}
}
}
答案 0 :(得分:0)
基于doc我认为getOnValue()方法只返回像checked或not checked这样的状态。你可以试试getPartialName(),getValue(),getFullyQualifiedName(),getAlternateFieldName()或任何其他方法。
答案 1 :(得分:0)
使用Radio Buttons,您必须弄清楚&#34; On Values&#34;是,类似于Checkbox。但是,Radio Buttons有多个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());
}
}
如果我想要&#34;检查&#34;选中按钮,我会将字段的值设置为&#34;正在检查&#34;。
希望这有帮助。