Java 填充PDF表单域
此经验将介绍通过Java编程来填充PDF表单域的方法。
工具/原料
Free Spire.PDF for Java v2.0.0(免费版)
jar文件导入
1、步骤1:在Java程序中新建一个文件夹可命名为Lib。并将产品包中的2个jar文件复制到新建的文件夹下。
2、步骤2:复制文件后,添加到引用类库:选中这两个jar文件,点击鼠标右键,选择“Build Path” – “Add to Build Path”。完成引用。
Java代码示例
1、测试文档如下,PDF文档中已包含的无填写内容的表单域。
2、import com.spire.pdf.FileFormat;import com.spire.pdf.PdfDocument;import com.spire.pdf.fields.Pd熠硒勘唏fField;import com.spire.pdf.widget.*;public class FillFormField_PDF{ public static void main(String[] args){ //创建PdfDocument对象,并加载PDF文档 PdfDocument doc = new PdfDocument(); doc.loadFromFile("output.pdf"); //获取文档中的域 PdfFormWidget form = (PdfFormWidget) doc.getForm(); //获取域控件集合 PdfFormFieldWidgetCollection formWidgetCollection = form.getFieldsWidget(); //遍历域控件并填充数据 for (int i = 0; i < formWidgetCollection.getCount(); i++) { PdfField field = formWidgetCollection.get(i); if (field instanceof PdfTextBoxFieldWidget) { PdfTextBoxFieldWidget textBoxField = (PdfTextBoxFieldWidget) field; textBoxField.setText("吴 敏"); } if (field instanceof PdfCheckBoxWidgetFieldWidget) { PdfCheckBoxWidgetFieldWidget checkBoxField = (PdfCheckBoxWidgetFieldWidget) field; switch(checkBoxField.getName()){ case "CheckBox1": checkBoxField.setChecked(true); break; case "CheckBox2": checkBoxField.setChecked(true); break; } } if (field instanceof PdfRadioButtonListFieldWidget) { PdfRadioButtonListFieldWidget radioButtonListField = (PdfRadioButtonListFieldWidget) field; radioButtonListField.setSelectedIndex(1); } if (field instanceof PdfListBoxWidgetFieldWidget) { PdfListBoxWidgetFieldWidget listBox = (PdfListBoxWidgetFieldWidget) field; listBox.setSelectedIndex(1); } if (field instanceof PdfComboBoxWidgetFieldWidget) { PdfComboBoxWidgetFieldWidget comboBoxField = (PdfComboBoxWidgetFieldWidget) field; comboBoxField.setSelectedIndex(1); } } //保存文档 doc.saveToFile("FillFormFields.pdf", FileFormat.PDF); }}
3、填充效果如下: