我正在使用PDFBox填写我们已经由第三方提供的PDF表格。
我只有1个表单有问题,此代码适用于其他21个表单。
我知道valueToSet
具有值并且是正确的,并且在setField
方法中,getField
方法确实返回了值,因此我知道字段名称也是正确的。此外,此代码适用于许多其他形式。没有填充任何字段(此特定模板无论如何只有文本框)。
我错过了什么?我应该寻找这种特定形式的东西吗?
setField(formFieldName, valueToSet);
public static void setField(String name, String value ) throws IOException {
PDDocumentCatalog docCatalog = document.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();
PDField field = acroForm.getField( name );
if (field instanceof PDCheckBox){
String onValue = ((PDCheckBox) field).getOnValue();
String offValue = "Off";
if(value.equals("Yes")){
field.setValue(onValue);
}
else{
field.setValue(offValue);
}
}
else{
field.setValue(value);
}
}