Java 获取PDF表单域的值_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java 获取PDF表单域的值

Java 获取PDF表单域的值

 2019/10/10 12:28:28  Miaonly  程序员俱乐部  我要评论(0)
  • 摘要:本文将介绍在Java程序中来获取PDF表单域值的方法,包括获取指定(可通过索引值或表单域名称)表单域的值及获取文档中所有表单域的值。使用工具:FreeSpire.PDFforJava(免费版)Jar文件获取:方法1:通过官网下载jar文件包。下载后,解压文件,将lib文件夹下的Spire.Pdf.jar导入java程序。方法2:通过maven仓库安装导入,可参考导入方法。测试文文档如下:Java代码示例【示例1】获取指定表单域的值importcom.spire.pdf.PdfDocument
  • 标签:Java 表单

class="MsoNormal">本文将介绍在Java程序中来获取PDF表单域值的方法,包括获取指定(可通过索引值或表单域名称)表单域的值及获取文档中所有表单域的值。

?

使用工具Free Spire.PDF for Java (免费版)

Jar文件获取:

方法1:通过官网下载jar文件包。下载后,解压文件,将lib文件夹下的Spire.Pdf.jar导入java程序。

方法2:通过maven仓库安装导入,可参考导入方法

?

测试文文档如下:


?

Java代码示例

?

【示例1】获取指定表单域的值

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();
    }
}

?指定表单域值获取结果:


?

【示例2】获取文中所有表单域的值

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<PdfListWidgetItem>) 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<PdfListWidgetItem>) 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("GetAllFormfieldValues.txt");
            writer.write(sb.toString());
            writer.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
        pdf.close();
    }
}

?表单域读取结果:

DBAFA4C9.png" alt="">
?

(本文完)

?

?

  • 大小: 31.2 KB
  • 大小: 36.3 KB
  • 大小: 42.3 KB
  • 查看图片附件
上一篇: ThreadLocal的一次深入学习 下一篇: 没有下一篇了!
发表评论
用户名: 匿名