`

Java 获取PDF表单域的值

阅读更多

本文将介绍在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();
    }
}

 表单域读取结果:


 

(本文完)

 

 

  • 大小: 31.2 KB
  • 大小: 36.3 KB
  • 大小: 42.3 KB
0
0
分享到:
评论

相关推荐

    java操作PDF表单

    通过java填写pdf表单,压缩文件里面都要相关的jar包,源码也在里面

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    Java Web编程宝典-十年典藏版.pdf 是PDF电子书,不是源码。共分2个包。 《Java Web编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用Java Web进行程序开发的各种技术、技巧。...

    Java Web应用详解.张丽(带详细书签).pdf

    动态网站篇深入讲解Servlet、JSP、JavaBean、JDBC数据库连接、数据库连接池等Java Web开发的核心技术。系统框架篇则是以架构设计的高度,讲解搭建网站的三大框架Struts、Hibernate、Sprin9及标签库。项目实战篇详细...

    Tcl_TK编程权威指南pdf

    Tcl_TK编程权威指南pdf 内容简介回到顶部↑Tcl/Tk是第一种能通过Windows、Macintosh和Solaris等主要平台处理企业级任务的脚本语言。本书共分为55章,依次详细讲述了Tcl基础、Tcl高级特性、TK基础、TK组件、TK详解、...

    【卷一/共两卷】AJAX实战pdf高清版90M

    A.1.1 获取适合的工具 A.1.2 创建自己的工具 A.1.3 维护工具箱 A.2 编辑器和IDE A.2.1 在代码编辑器中需要什么功能. A.2.2 当前的工具 A.3 调试器 A.3.1 为什么要使用调试器 A.3.2 JavaScript调试器. A.3.3 HTTP调试...

    网页与Web程序设计 课件 ppt 机械工业出版社 part1

    随着计算机网络的普及,网络应用日趋丰富,人们利用Internet足不出户就可以获取所需要的信息,实现购物、炒股、娱乐和在线学习等。Web网站是Internet的重要组成部分,对于公司和企业来说,可以利用网站来展示企业...

    jspsmart.jar包及帮助文档

    只所以提供这个类,是因为对于文件上传表单,通过request对象无法获得表单项的值,必须通过jspSmartUpload组件提供的Request对象来获取。该类提供如下方法: 1、getParameter 作用:获取指定参数之值。当参数不...

    spring in action英文版

     9.2.4 在FreeMarker中绑定表单域  9.3 使用Tile设计页面布局  9.3.1 Tile视图  9.3.2 Tile控制器  9.4 产生非HTML输出  9.4.1 产生Excel工作表  9.4.2 产生PDF文档  9.4.3 产生其他非HTML...

    Spring.3.x企业应用开发实战(完整版).part2

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

    Spring3.x企业应用开发实战(完整版) part1

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

    Spring 2.0 开发参考手册

    5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. Spring的AOP代理 6.2. @...

    Spring中文帮助文档

    5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. AOP代理 6.2. @AspectJ支持 ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 5.4.2.1. 注册用户自定义的PropertyEditor 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 ...

    Spring API

    5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. AOP代理 6.2. @AspectJ支持 ...

    spring chm文档

    5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. Spring的AOP代理 6.2. @...

    Spring攻略(第二版 中文高清版).part2

    2.8 用Java Config简化XML配置 77 2.8.1 问题 77 2.8.2 解决方案 77 2.8.3 工作原理 77 2.9 使Bean感知容器 81 2.9.1 问题 81 2.9.2 解决方案 81 2.9.3 工作原理 82 2.10 加载外部资源 82 2.10.1...

    Spring攻略(第二版 中文高清版).part1

    2.8 用Java Config简化XML配置 77 2.8.1 问题 77 2.8.2 解决方案 77 2.8.3 工作原理 77 2.9 使Bean感知容器 81 2.9.1 问题 81 2.9.2 解决方案 81 2.9.3 工作原理 82 2.10 加载外部资源 82 2.10.1...

Global site tag (gtag.js) - Google Analytics