动态pdf实时生成方法

文档序号:8258468阅读:835来源:国知局
动态pdf实时生成方法
【技术领域】
[0001]本发明涉及文档处理技术,具体涉及动态PDF实时生成方法。
【背景技术】
[0002]有些企业软件应用平台在与用户交互的时候,用户有时候需要软件应用平台把多种类信息(如表格、文字等)组合成一份类似报告的文档,提供给用户,供用户下载查阅,并形成图档签章后上传给软件应用平台。由于生成报告的信息涉及表格和文字的混排,以及文档格式的显示等,并且可能在生成报告的过程中,部分信息可能需要反复修改,因而要求上述文档的生成过程可以兼容多类型的信息,且各信息可随时更新与调整,从而方便用户获取和使用该报告文档。然而,目前已有的文档处理技术无法满足上述需求。

【发明内容】

[0003]为了解决现有文档处理技术所存在的技术问题,本发明提供动态PDF实时生成方法,极大地方便了用户获取和使用有关报告文档。
[0004]本发明采用如下技术方案:动态PDF实时生成方法,包括以下步骤:
[0005]S1、客户端发起生成PDF文档的请求;
[0006]S2、服务端根据步骤SI的请求创建PDF文档框架,填充文档结构;
[0007]S3、服务端响应请求输出临时PDF文件,由客户端保存为PDF文档。
[0008]优选地,所述步骤S2服务端创建PDF文档框架前,对步骤SI的请求进行合法性验证。合法性验证过程优选为:针对每一份不同的PDF文档模板,在服务端构造不同的ashx文件,用来接收客户端发起的生成PDF文档请求的参数,以验证生成PDF文档请求的合法性。
[0009]优选地,所述步骤S2创建PDF文档框架,填充文档结构的过程为:
[0010]通过ashx接口获取生成PDF文档所需要的数据,然后根据事先定义好的PDF文档段落排版格式,把从数据库中提取到的原始数据格式化成PDF显示输出的内容格式;
[0011]通过第三方组件创建PDF文档框架,并设定好该PDF文档框架的基本版面格式,利用系统文件处理机制FileStream打开文件流,利用第三方组件提供的PDF构造器,把文件流和创建好的PDF文档框架绑定到一起;通过继承第三方组件中PDF页头页尾句柄对象类,构造出分页对象,实例化该分页对象,然后把该分页对象实例传递给PDF构造器的分页事件中,并开启PDF构造器的分页属性开关,从而实现生成的PDF文档自动分页并显示分页页码和总页数。
[0012]本发明生成的PDF文件可支持中文字体,在所述步骤S2中生成支持中文字体的PDF内容过程为:通过获取系统的环境变量,获取系统的字体路径,通过调用第三方组件中PDF内容构造函数,把字体路径以参数的形式传递给F1DF内容构造函数。
[0013]本发明可以将表格和文字的混排内容生成一份PDF文件,在所述步骤S2中将表格和文字的混排构造成PDF内容的过程为:通过定义多个PDF段落对象,把需要输出的表格字符串和文字字符串按照PDF文档框架的尺寸和格式分别封装成不同的PDF段落对象,然后按文档显示的顺序,把所述PDF段落对象依次添加到PDF文档框架中。
[0014]本发明所设计的动态PDF处理机制,其原理如下:当客户端发起请求获取报告文档时,首先通过一个第三方组件把需要动态组合的信息通过文件流的方式,组织成PDF格式的响应流信息,以文件下载的方式传递到客户端,用户保存该响应流数据形成一份实时的roF文档。
[0015]与现有技术相比,本发明具有如下优点及有益效果:
[0016]1、能动态组合表格、文字等多种类型的信息,满足用户的需求。
[0017]2、客户端实时保存生成的PDF文件,服务端不留存文件副本,节约服务端的存储空间及处理数据的时间。
[0018]3、用户经过合法性验证之后才有权生成并下载PDF文件,安全性高。
【附图说明】
[0019]图1是本发明的生成流程图。
【具体实施方式】
[0020]下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不局限于此。
[0021]实施例
[0022]如图1所示,本实施例中动态PDF实时生成方法包括以下步骤:
[0023]I)客户端发起生成PDF文档的请求。
[0024]2)服务端创建PDF文档框架,填充文档结构,生成临时PDF文件。
[0025]由于动态生成PDF文档不需要客户端回发处理,针对每一份不同的PDF文档模板,我们在服务端构造不同的ashx文件,用来接收客户端发起的生成PDF文档请求的参数,以验证生成PDF文档请求的合法性。若生成PDF文档请求合法,即请求的用户信息经验证之后,由服务端完成PDF文档的创建。
[0026]服务端在接收到生成PDF文档请求时,首先通过ashx接口获取生成PDF文档所需要的数据,然后根据事先定义好的PDF文档段落排版格式,把从数据库中提取到的原始数据格式化成PDF显示输出的内容格式,通常为字符串类型,如数据表格字符串、文字描述字符串等。
[0027]然后,通过一个第三方组件(iTextSharp),去创建一个PDF文档框架,并设定好该PDF文档框架的基本版面格式,PDF文档框架设定好之后,利用系统文件处理机制FileStream,打开一个文件流,利用第三方组件提供的TOF内容构造函数,把文件流和创建好的PDF文档框架绑定到一起。通过继承第三方组件中PDF页头页尾句柄对象类,构造出分页对象,实例化该分页对象,然后把该分页对象实例传递给TOF内容构造函数的分页事件中,并开启PDF内容构造函数的分页属性开关,从而实现生成的PDF文档自动分页并显示分页页码和总页数。
[0028]为了让TOF内容能够支持中文显示,我们通过获取系统的环境变量,获取系统的字体路径,通过调用第三方组件中TOF内容构造函数,把字体路径以参数的形式传递给TOF内容构造函数,从而生成能够支持中文字体的PDF内容。
[0029]在构造roF内容时,如果遇到表格和文字的混排,通过定义多个PDF段落对象,把需要输出的表格字符串和文字字符串按照PDF文档框架的尺寸和格式分别封装成不同的PDF段落对象,然后按文档显示的顺序,把这些PDF段落对象依次添加到PDF文档框架中。最后所有文档内容构造完之后,关闭PDF文档框架。此时在服务端会生成一份临时PDF文件。
[0030]3)服务端响应请求输出临时PDF文件,由客户端保存为PDF文档。
[0031]服务端把临时PDF文件创建成一个文件对象,通过获取当前请求会话的实例对象,把所述文件对象通过响应流,按照二进制流方式输出给客户端,由客户端保存为PDF文档,从而完成一次动态PDF生成的过程。
[0032]在用户通过客户端发起生成PDF文档请求的时候,根据不同的用户,系统实时的响应并构造出最新的PDF文件流,传输并保存在客户端。如果信息发生临时修改,只需要重新发起生成PDF文档请求,构造出新的PDF文件流,传输并保存在客户端,供用户使用。
[0033]上述实施例为本发明的一种实施方式,但本发明的实施方式并不限定与此,从事该领域技术人员在未背离本发明精神和原则下所做的任何修改、替换、改进,均包含在本发明的保护范围内。
【主权项】
1.动态PDF实时生成方法,其特征在于,包括以下步骤: 51、客户端发起生成PDF文档的请求; 52、服务端根据步骤SI的请求创建PDF文档框架,填充文档结构; 53、服务端响应请求输出临时PDF文件,由客户端保存为PDF文档。
2.根据权利要求1所述的动态PDF实时生成方法,其特征在于,所述步骤S2服务端创建PDF文档框架前,对步骤SI的请求进行合法性验证。
3.根据权利要求2所述的动态PDF实时生成方法,其特征在于,所述合法性验证过程为:针对每一份不同的PDF文档模板,在服务端构造不同的ashx文件,用来接收客户端发起的生成PDF文档请求的参数,以验证生成PDF文档请求的合法性。
4.根据权利要求1所述的动态PDF实时生成方法,其特征在于,所述步骤S2创建TOF文档框架,填充文档结构的过程为: 通过ashx接口获取生成PDF文档所需要的数据,然后根据事先定义好的PDF文档段落排版格式,把从数据库中提取到的原始数据格式化成PDF显示输出的内容格式; 通过第三方组件创建PDF文档框架,并设定好该PDF文档框架的基本版面格式,利用系统文件处理机制FileStream打开文件流,利用第三方组件提供的PDF构造器,把文件流和创建好的TOF文档框架绑定到一起;通过继承第三方组件中PDF页头页尾句柄对象类,构造出分页对象,实例化该分页对象,然后把该分页对象实例传递给PDF构造器的分页事件中,并开启PDF构造器的分页属性开关,从而实现生成的PDF文档自动分页并显示分页页码和总页数。
5.根据权利要求4所述的动态PDF实时生成方法,其特征在于,所述步骤S2生成支持中文字体的TOF内容过程为:通过获取系统的环境变量,获取系统的字体路径,通过调用第三方组件中HF内容构造函数,把字体路径以参数的形式传递给HF内容构造函数。
6.根据权利要求4所述的动态PDF实时生成方法,其特征在于,所述步骤S2将表格和文字的混排构造成PDF内容的过程为:通过定义多个PDF段落对象,把需要输出的表格字符串和文字字符串按照PDF文档框架的尺寸和格式分别封装成不同的PDF段落对象,然后按文档显示的顺序,把所述PDF段落对象依次添加到PDF文档框架中。
7.根据权利要求4所述的动态PDF实时生成方法,其特征在于,所述步骤S2中第三方组件为 iTextSharp。
8.根据权利要求1所述的动态PDF实时生成方法,其特征在于,所述步骤S3服务端把临时PDF文件创建成文件对象,通过获取当前请求会话的实例对象,把所述文件对象通过响应流输出给客户端,由客户端保存为PDF文档。
【专利摘要】本发明公开了动态PDF实时生成方法,包括以下步骤:S1、客户端发起生成PDF文档的请求;S2、服务端根据步骤S1的请求创建PDF文档框架,填充文档结构;S3、服务端响应请求输出临时PDF文件,由客户端保存为PDF文档。发明通过ashx接口获取生成PDF文档所需要的数据,通过第三方组件创建PDF文档框架,能够将表格和文字的混排内容生成一份PDF文件,生成的PDF文件可支持中文字体,极大地满足了客户需求,同时方便用户及时取得PDF文件。
【IPC分类】G06F17-21, G06F17-30
【公开号】CN104572594
【申请号】CN201510041392
【发明人】傅志山
【申请人】中復保有限公司
【公开日】2015年4月29日
【申请日】2015年1月27日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1