您的位置首页百科问答

Java 获取PDF表单域中的值

Java 获取PDF表单域中的值

的有关信息介绍如下:

Java 获取PDF表单域中的值

以下经验内容将分享在Java程序中如何来获取PDF表单域中的值,包括获取指定表单域中的值以及获取文档中所有表单域的值。

方法1:可通过e-iceblue官网下载jar文件包。下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar文件导入到Java程序。参考如下导入效果:

方法2:可通过maven仓库安装导入。

供测试的PDF文档如下:

import com.spire.pdf.PdfDocument;

import com.spire.pdf.widget.PdfFormWidget;

import com.spire.pdf.widget.PdfTextBoxFieldWidget;

import java.io.FileWriter;

import java.io.IOException;

public class GetSpecificFormfieldValue {

public static void main(String[] args) {

//加载PDF文档

PdfDocument pdf = new PdfDocument();

pdf.loadFromFile("test.pdf");

//获取表单域

PdfFormWidget formWidget = (PdfFormWidget)pdf.getForm();

//通过索引值来获取指定表单域中的值

PdfTextBoxFieldWidget textbox = ( PdfTextBoxFieldWidget)formWidget.getFieldsWidget().get(0);

//PdfTextBoxFieldWidget textbox = ( PdfTextBoxFieldWidget)formWidget.getFieldsWidget().get("TextBox");//通过表单域名称来获取值

//将获取的值写入txt文档

String text = textbox.getText();

try {

//将文本写入 .txt文件

FileWriter writer = new FileWriter("GetSpecificFormfieldValue.txt");

writer.write(text);

writer.flush();

} catch (IOException e) {

e.printStackTrace();

}

pdf.close();

}

}

读取效果;

import com.spire.pdf.PdfDocument;

import com.spire.pdf.fields.PdfField;

import com.spire.pdf.widget.*;

import java.io.FileWriter;

import java.io.IOException;

public class GetAllFormfieldValue {

public static void main(String[] args) {

//加载PDF文档

PdfDocument pdf = new PdfDocument();

pdf.loadFromFile("测试.pdf");

//获取表单域

PdfFormWidget formWidget = (PdfFormWidget)pdf.getForm();

StringBuilder sb = new StringBuilder();

//遍历表单域控件集合并提取所有表单的值

for (int i = 0; i < formWidget.getFieldsWidget().getCount(); i++)

{

PdfField field = (PdfField)formWidget.getFieldsWidget().getList().get(i);

//获取文本框的值

if (field instanceof PdfTextBoxFieldWidget)

{

PdfTextBoxFieldWidget textBoxField = (PdfTextBoxFieldWidget)field ;

String text = textBoxField.getText();

sb.append("文本框内容: " + text + "\r\n");

}

//获取列表框的值

if (field instanceof PdfListBoxWidgetFieldWidget)

{

PdfListBoxWidgetFieldWidget listBoxField = (PdfListBoxWidgetFieldWidget)field;

//获取列表框中选中的值

String selectedValue = listBoxField.getSelectedValue();

sb.append("列表框选中的内容: " + selectedValue + "\r\n");

//获取列表框中的所有选项值

sb.append("列表框内容: \r\n");

PdfListWidgetItemCollection items = listBoxField.getValues();

for (PdfListWidgetItem item : (Iterable) items)

{

sb.append(item.getValue() + "\r\n");

}

}

//获取组合框的值

if (field instanceof PdfComboBoxWidgetFieldWidget)

{

PdfComboBoxWidgetFieldWidget comBoxField = (PdfComboBoxWidgetFieldWidget)field ;

//获取组合框中选中的值

String selectedValue = comBoxField.getSelectedValue();

sb.append("组合框选中的内容: " + selectedValue + "\r\n");

//获取组合框中所有选项值

sb.append("组合框内容: \r\n");

PdfListWidgetItemCollection items = comBoxField.getValues();

for (PdfListWidgetItem item : (Iterable) items)

{

sb.append(item.getValue() + "\r\n");

}

}

//获取单选按钮值

if (field instanceof PdfRadioButtonListFieldWidget)

{

PdfRadioButtonListFieldWidget radioBtnField = (PdfRadioButtonListFieldWidget)field;

String Value = radioBtnField.getValue();

sb.append("单选按钮内容: " + Value + "\r\n");

}

//获取复选框值

if (field instanceof PdfCheckBoxWidgetFieldWidget)

{

PdfCheckBoxWidgetFieldWidget checkBoxField = (PdfCheckBoxWidgetFieldWidget)field;

//获取复选框的选中状态

boolean state = checkBoxField.getChecked();

sb.append("复选框是否被选中? " + state + "\r\n");

}

}

try {

//将文本写入 .txt文件

FileWriter writer = new FileWriter("GetAllFormfieldValues1.txt");

writer.write(sb.toString());

writer.flush();

} catch (IOException e) {

e.printStackTrace();

}

pdf.close();

}

}

读取效果: