spire.pdf for java支持读取指定pdf表单域的值也支持读取所有pdf表单域的值。本文将介绍如何使用spire.pdf for java读取指定表单域和所有表单域的值。
示例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 readspeicificformvalue {
public static void main(string[] args){
//加载pdf文档
pdfdocument pdf = new pdfdocument();
pdf.loadfromfile("fillformfields.pdf");
//获取表单域
pdfformwidget formwidget = (pdfformwidget)pdf.getform();
//通过索引或名称获取文本框
pdftextboxfieldwidget textbox = ( pdftextboxfieldwidget)formwidget.getfieldswidget().get(0);
//pdftextboxfieldwidget textbox = ( pdftextboxfieldwidget)formwidget.getfieldswidget().get("textbox");
//获取文本框的文本
string text = textbox.gettext();
try {
//将文本写入 .txt文件
filewriter writer = new filewriter("getspecificfieldvalue.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 readallformvalues {
public static void main(string[] args)
//加载pdf文档
pdfdocument pdf = new pdfdocument();
pdf.loadfromfile("fillformfields.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;
sb.append("列表框内容: \r\n");
//获取列表框的值
pdflistwidgetitemcollection items = listboxfield.getvalues();
for (pdflistwidgetitem item : (iterable) items)
{
sb.append(item.getvalue() "\r\n");
}
//获取列表框中选中的值
string selectedvalue = listboxfield.getselectedvalue();
sb.append("列表框选中内容: " selectedvalue "\r\n");
}
if (field instanceof pdfcomboboxwidgetfieldwidget)
{
pdfcomboboxwidgetfieldwidget comboxfield = (pdfcomboboxwidgetfieldwidget)field ;
sb.append("组合框内容: \r\n");
//获取组合框的值
pdflistwidgetitemcollection items = comboxfield.getvalues();
for (pdflistwidgetitem item : (iterable) items)
{
sb.append(item.getvalue() "\r\n");
}
//获取组合框中选中的值
string selectedvalue = comboxfield.getselectedvalue();
sb.append("组合框选中内容: " selectedvalue "\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("getallvalues.txt");
writer.write(sb.tostring());
writer.flush();
} catch (ioexception e) {
e.printstacktrace();
}
pdf.close();
}
}