wo讲到PDF表单,我们首先需要认识Adobe定义的PDF表单有哪些。以下是我从网上搜索到的简单介绍:

PDF 表单简介

PDF 是可移植文档格式(Portable Document Format)的缩写,这是由 Adobe Systems Inc 开发的文件格

式。PDF 将从各种桌面发布应用程序捕捉格式信息,使其能够发送设定了格式的文档并根据需要在接收者的监视

器或打印机中显示这些文档。要查看 PDF 文件,需要使用 Adobe Reader;要创建或修改 PDF 文件,需要使

用 Adobe Acrobat Professional 或 Adobe Acrobat Designer。

PDF 表单可以分为两种类型:静态 PDF 表单和交互式 PDF 表单。静态 PDF 表单是没有交互元素的传统 PDF 文

档。这种表单是由文本、点、线和图形等静态元素组成的,文件存储为二进制格式。

另一种 PDF 表单是交互式 PDF 表单。在 PDF 规范中,有两种交互式表单:

AcroForm:PDF Specification 1.2 中引入的这种表单是从用户那里通过交互方式收集信息的字段集。交互式表单

的内容和属性都是由一个交互式表单字典定义的,这个字典引用自 PDF 文件的文档类别的 AcroForm 条目。

XML Forms Architecture(XFA):XFA 将提供基于模板的语法和处理规则集,它们将允许用户构建交互式表

单。基于模板的语法将定义用户在其中提供数据的字段。XFA 的开放特性将提供描述交互式表单的通用 XML 语

法,这是在表单处理应用程序之间执行与表单相关的交互操作的通用基础。这种开放特性意味着将在各种业务中应

用 XFA。XFA 表单将提供大量功能:

工作流程:这类表单包括数据表示、数据捕捉和数据编辑。XFA 被用作将数据提交到后台服务器中的前端应用程

序;它还可用于打印目的。

动态交互:动态功能从具有动态计算、验证及其他特性的交互式、可编辑的表单,到服务器生成的、机器填充的表

单等各不相同。

动态布局:表单可以自动重新调整自身以适应用户或外部数据源(例如数据库服务器)提供的数据。例如,如果从

服务器中检索到的数据有 100 行,则表单显示 100 行。

复杂度:此功能包括单页静态表单,动态文档将基于数据内容进行装配,而大型生产运行包含数十万个事务。

与 AcroForm 相比,XFA(一种交互式表单)在以下方面更加高级:

XFA 可以在基于 XML 的工作流中使用。

XFA 将从 XFA 模板中分离数据,这将允许在支持的数据结构中拥有更大的灵活性并允许独立于表单封装数据。

XFA 可以指定动态增长的表单。

XFA 可以指定 Web 交互操作,例如 HTTP 和 Web 服务描述语言

(Web Services Description Language,WSDL)。此类交互操作可用于将数据提交给服务器,或请求服务器执

行计算并返回结果。

XFA 将与其他 XML 语法结合使用。

目前我们只支持AcroForm形式交互性。通过接口可以控制每个域的文本填充,设置域的只读性、可见性等属性。

我采用C#快速开发了一个示例,如下图所示:

1、首先是把我们的PDF控件拖到Form上布局。

2、响应填充按钮的消息,实现代码如下:

看到没,就是这么简单。。。。。

P​D​F​二​次​开​发​_​i​S​t​y​l​e​P​D​F​表​单​域​的​填​充的更多相关文章

  1. JS 08表单操作_表单域

    一.表单的获取方式 document.getElementById() document.forms[index]; document.forms[form_name] document.form_n ...

  2. Android系统--输入系统(十二)Dispatch线程_总体框架

    Android系统--输入系统(十二)Dispatch线程_总体框架 1. Dispatch线程框架 我们知道Dispatch线程是分发之意,那么便可以引入两个问题:1. 发什么;2. 发给谁.这两个 ...

  3. ECSHOP二次开发文档【文件结构说明和数据库表分析】

    最近公司又把之前的ecshop进行二次开发,之前看过一些ecshop的东西,但是都过了很久差不多都忘完了,现在得把之前的重新捡回来,特此搜到这些文档,接下来的开发工作中会方便不少. Ecshop文件结 ...

  4. Openlayers3 WebGis二次开发包实例

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs& ...

  5. WebGis二次开发包实例

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs& ...

  6. [转]QGis2.9在windows下的编译以及二次开发包下载

    今天心血来潮,将QGis在github上的代码更新后,又编译了一下.留意到源代码包里面的INSTALL文件有更新,于是本次编译完全基于官方的编译说明.编译过程非常顺利,除了在CMake的第一次conf ...

  7. ​0​天​掌​握​i​O​S​开​发​之​D​a​y​2​ ​-​ ​内​存​管​理 (给学生讲解的课件,总结的不错)

    from:   10​天​掌​握​i​O​S​开​发​之​D​a​y​2​ ​-​ ​内​存​管​理

  8. Jmeter自动化测试 POST请求和GET请求用if控制器,可以二次开发源码,将请求方式通过数据源传入,就不需要做多余的判断

    Jmeter自动化测试 POST请求和GET请求用if控制器,可以二次开发源码,将请求方式通过数据源传入,就不需要做多余的判断 目前常用的做法:

  9. PIE.NET-SDK插件式二次开发文档

    一 PIE.Net开发环境部署 1.     开发环境部署 确保Win7系统已安装SP1 安装Visual Studio2013(支持VS2010/2012/2013/2015) 安装PIESDK.e ...

随机推荐

  1. Ubuntu16.04 802.1x 有线连接 输入账号密码,为什么连接不上?

    ubuntu16.04,在网络配置下找到802.1x安全性,输入账号密码,为什么连接不上?   这是系统的一个bug解决办法:假设你有一定的ubuntu基础,首先你先建立好一个不能用的协议,就是按照之 ...

  2. c#制作一个屏幕保护程序

    代码已上传github 实现思路:纯黑窗体去边框,加入标签. 使用Timmer让windows 10标签运动.限制标签的行为. 代码: int deltX = 10;       int deltY ...

  3. 关于oracle数据库中进行查询的时候出现效率特别差的一种情况

    下面这段代码执行效率是极慢的(根本没执行完成过): select /*+ parallel(16) */ z.small_code,trunc(hs.CREATED_AT),sum(hs.COST_S ...

  4. Qt设计器中设置border-image注意问题

    Qt版本4.8.5,Windows7操作系统,在Qt设计师中通过样式表设计设置widget的border-image属性,debug版本编译会正常显示,但是release版本编译运行就不显示,把图片格 ...

  5. X86 Booting Sequence

    1.BIOS 0xFFFF0 電源正常啟動後,x86 CPU 會先執行 0xFFFF0,也就是 BIOS ROM 的進入點.由於 0xFFFF0 ~ 0xFFFFF 只有少的很可憐的 16 bytes ...

  6. linux 使用/proc文件系统 实现用户空间与内核模块之间通信

    项目中可能会用到用户态和内核模块之间进行通信的功能.想到linux系统本身很多通信都是通过/proc文件系统来的,比如修改网络中连接跟踪表连接数限制/proc/sys/net/netfilter/nf ...

  7. Card Flip

    卡牌效果:O(∩_∩)O,只做了webkit浏览器的效果,请用chrome~ 1.首先呢,先用一个框框把卡牌包住,然后呢,搞两个子元素作为卡牌正反面.当然咯,反面是看不见滴~ <section ...

  8. 安装 whmcs

    1.下载下来后(自己百度网盘),用scp 上传, 在网站能访问的地方新建目录,例如 whmcs 目录,解压到内 2.网站访问 http://ip/whmcs/index.php 提示需要安装 ionc ...

  9. Android 6.0 权限请求

    在申请权限之前一定要在清单配置文件中添加该权限private static final int MY_PERMISSIONS_REQUEST_RECORD_AUDIO = 1; //随便定义 publ ...

  10. Spring之ClassPathResource加载资源文件

    先看Demo: 1 @Test 2 public void testClassPathResource() throws IOException { 3 Resource res = new Clas ...