一种PDF文档模型的数据处理方法及处理组件转让专利

申请号 : CN202210861898.6

文献号 : CN114936540B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郑志勇

申请人 : 深圳联友科技有限公司

摘要 :

本发明公开了一种PDF文档模型的数据处理方法及处理组件,涉及数据处理技术领域。本发明通过根据业务PDF报表的业务数据需求设计PDF业务类,该PDF业务类需继承PDF基础类,该PDF基础类封装iText组件的功能,通过业务名称进行XML配置定义输入的PDF模版文件属性,同时定义输出的生成PDF文件属性;然后就是在业务类对重写抽象的WriteProcess方法中进行业务数据逻辑处理,而业务数据在PDF写入使用WriteText或WriteMark方法来写入到生成的PDF文件,其中业务数据在PDF写入的定位可以通过XML配置来定位校正;同时提供多个业务PDF文件合并PDF文件的功能处理。

权利要求 :

1.一种PDF文档模型的数据处理方法,其特征在于,包括以下步骤:步骤P01:生成业务PDF文件的数据处理过程:

步骤P11:创建PDF业务类,所述PDF业务类继承PDF基础类;

步骤P12:由PDF工厂类统一处理实例化PDF业务类:首先定义PDF基础类型,在PDF工厂类的构造方法中扩展增加PDF业务类的实例化对象,同时给PDF工厂类定义返回生成的PDF文件属性,所述PDF文件属性用于返回业务生成的PDF文件地址,并定义生成的PDF文件地址来输出业务PDF文件;

步骤P02:多业务合并PDF的处理过程:

步骤P21:实例化PDF合并类对象,初始化输出PDF文件路径属性值,根据多业务需求把业务类型ID添加到业务类型ID列表;

步骤P22:调用PDF合并对象的Execute方法合并输出PDF文件;

所述PDF文件属性的生成方法为:

步骤SP1:定义一个PDF业务类,重写PDF基础类的WriteProcess方法;

步骤SP2:创建步骤SP1中PDF业务类的构造方法,用于业务数据的初始化,并调用业务名称属性赋值、设置业务名称;

步骤SP3:根据步骤SP2中设置的业务名称,创建对应业务的XML配置,在PDFConfig标签下创建Product标签,然后在Product标签下创建Document标签;

步骤SP4:在步骤SP1重写的WriteProcess方法中进行业务数据逻辑写入;

步骤SP5:在步骤SP3中的Document标签下创建WriteText或WriteMark标签,进行配置业务数据的定位属性;

PDF基础类:其用于抽象出业务名称、PDF文件页面大小类型、文本对齐、生成PDF文件名称、左空白、右空白、上空白、下空白的属性;

还用于定义使用iText组件中类型属性:包含页面大小形状属性、Document属性、PDF写操作属性、PDF读操作属性、PDF内容字节属性、基本字体属性;

PDF合并类:其用于定义输出PDF文件路径属性、PDF文件列表属性、业务类型ID列表属性,执行合并PDF操作;

PDF工厂类:其用于定义PDF基础类变量、定义生成的PDF文件属性,还用于创建所有PDF业务类实例化对象;

PDF业务类:其用于通过继承PDF基础类,定义业务数据属性,实例化对象时生成业务数据对象;通过调用继承类设置的业务名称获取XML配置的PDF模板文件路径、Docment属性值;

PDF配置类:其为PDF模板文件设置的XML配置的解析类。

2.根据权利要求1所述的一种PDF文档模型的数据处理方法,其特征在于,进行配置业务PDF文件相关属性、业务数据定位属性的方法为:步骤S1:读取PDF模板文件设置的XML配置解析操作;

步骤S2:在PDF业务类中初始化业务数据并设置业务名称,PDF业务类继承PDF基础类;

步骤S3:在PDF工厂类中扩展PDF业务类实例化对象操作步骤S2;

步骤S4:根据步骤S2中业务名称获取对应XML配置的步骤S1的PDF模板文件路径属性和Document属性;

步骤S5:在步骤S3中给PDF基础类型变量设置生成PDF文件的路径;

步骤S6:根据步骤S2中业务名称和index参数来获取XML配置中步骤S1中的业务数据定位属性。

3.根据权利要求2所述的一种PDF文档模型的数据处理方法,其特征在于,所述步骤SP4中,进行业务数据逻辑写入的方法为:步骤X001:根据步骤S4获取的Document属性来实例化Document对象,以所述Document对象为参数和生成PDF文件的路径属性为参数,生成PDF写操作对象,打开Document对象的open方法,使用PDF写操作对象来获取PDF内容字节对象;

步骤X002:根据步骤S4获取的PDF模板文件为参数来实例化PDF读操作对象;

步骤X003:PDF写操作对象根据PDF读操作对象来生成PDF导入页对象,把PDF导入页对象作为PDF内容字节对象的模板数据属性,然后开始PDF内容字节对象的文本操作;

步骤X004:调用PDF业务类重写的抽象方法WriteProcess来写入业务数据,然后结束PDF内容字节对象的文本操作,最后关闭Document对象的close方法。

4.根据权利要求3所述的一种PDF文档模型的数据处理方法,其特征在于,所述步骤X004中,调用PDF业务类重写的抽象方法WriteProcess来写入业务数据的步骤为:根据步骤S2中的初始化业务数据来进行业务数据的逻辑写入,写入方法调用继承PDF基础类的WriteText或WriteMark方法进行数据写入。

5.根据权利要求4所述的一种PDF文档模型的数据处理方法,其特征在于,采用所述WriteText或WriteMark方法进行数据写入过程中调用步骤S6获取的业务数据定位属性来校正业务数据定位信息。

6.根据权利要求1所述的一种PDF文档模型的数据处理方法,其特征在于,在所述PDFConfig标签下创建的Product标签包含业务名称、描述、模板文件属性,在所述Product标签下创建的Document标签包含页面大小类型、上下左右的空白留边。

7.根据权利要求1所述的一种PDF文档模型的数据处理方法,其特征在于,所述步骤P22中调用PDF合并对象的Execute方法合并输出PDF文件的步骤为:根据业务类型ID列表,循环遍历处理每个PDF业务类,每个PDF业务类获取生成的业务PDF文件;

把获取的业务PDF文件添加到PDF文件列表,执行Merge方法把PDF文件列表的业务PDF文件合并输出PDF文件。

8.根据权利要求1所述的一种PDF文档模型的数据处理方法,其特征在于,所述步骤SP4中,写入业务数据逻辑时,使用PDF基础类提供的WriteText或WriteMark方法进行数据写入。

说明书 :

一种PDF文档模型的数据处理方法及处理组件

技术领域

[0001] 本发明属于数据处理技术领域,特别是涉及一种PDF文档模型的数据处理方法及处理组件。

背景技术

[0002] 目前,规范的企业还是使用PDF做为文档报表,使用PDF报表就对文档页面大小,输出文字格式有要求,报表中业务数据都是根据业务订制生成的,在制作生成中要校正文字的位置、大小、旋转等要做多次处理,最终生成合格规范的PDF报表。
[0003] 如2016年07月13日公开的中国专利CN105760172A提供一种基于itext的报表生成方法,A、利用办公软件生成一个PDF模板,并给模板增加PDF表单;B、以XML文件作为数据定义文件,包括三种基本元素:PDF模板名称、SQL语句和映射关系;C、解释数据定义文件,按照数据对应关系用itext把数据填充到PDF模板中,生成最终的PDF报表。
[0004] 如上,生成PDF文件主要通过iText组件来进行PDF文件生成和数据写入以及PDF合并处理,没有形成统一抽象的数据处理方法和合并功能,即现有iText组件进行PDF报表开发时数据处理没有统一抽象方法;且在PDF文件上面的业务数据定位调整,要在代码上修改调整,因此,现有技术主要存在以下缺点:没有统一的PDF文件输入输出的数据处理方法和业务PDF合并方法、没有PDF文件中业务数据定位配置化。

发明内容

[0005] 本发明的目的在于提供一种PDF文档模型的数据处理方法及处理组件,通过根据业务PDF报表的业务数据需求设计PDF业务类,该PDF业务类需继承PDF基础类(该PDF基础类封装iText组件的功能),通过业务名称进行XML配置定义输入的PDF模版文件属性,同时定义输出的生成PDF文件属性(该属性通过对继承类(PDF基础类)的生成PDF文件名称属性赋值生成PDF存放文件地址即可);然后就是在业务类对重写抽象的WriteProcess方法中进行业务数据逻辑处理,而业务数据在PDF写入使用WriteText或WriteMark方法来写入到生成的PDF文件,其中业务数据在PDF写入的定位可以通过XML配置来定位校正;同时提供多个业务PDF文件合并PDF文件的功能处理,解决了现有技术中的以下问题:
[0006] 1.没有统一的PDF文件输入输出的数据处理方法和业务PDF合并方法;
[0007] 2.没有PDF文件中业务数据定位配置化。
[0008] 为解决上述技术问题,本发明是通过以下技术方案实现的:
[0009] 作为本发明的第一个方面,本发明为一种PDF文档模型的数据处理方法,包括以下步骤:
[0010] 步骤P01:生成业务PDF文件的数据处理过程:
[0011] 步骤P11:创建PDF业务类,所述PDF业务类继承PDF基础类;
[0012] 步骤P12:由PDF工厂类统一处理实例化PDF业务类:首先定义PDF基础类型,在PDF工厂类的构造方法中扩展增加PDF业务类的实例化对象,同时给PDF工厂类定义返回的生成PDF文件属性,所述PDF文件属性用于返回业务生成的PDF文件地址,并定义生成的PDF文件地址来输出业务PDF文件;
[0013] 步骤P02:多业务合并PDF的处理过程:
[0014] 步骤P21:实例化PDF合并类对象,初始化输出PDF文件路径属性值,根据多业务需求把业务类型ID添加到业务类型ID列表;
[0015] 步骤P22:调用PDF合并对象的Execute方法合并输出PDF文件。
[0016] 进一步地,所述PDF文件属性的生成方法为:
[0017] 步骤SP1:定义一个PDF业务类,重写PDF基础类的WriteProcess方法;
[0018] 步骤SP2:创建步骤SP1中PDF业务类的构造方法,用于业务数据的初始化,并调用业务名称属性赋值、设置业务名称;
[0019] 步骤SP3:根据步骤SP2中设置的业务名称,创建对应业务的XML配置,在PDFConfig标签下创建Product标签,然后在Product标签下创建Document标签;
[0020] 步骤SP4:在步骤SP1重写的WriteProcess方法中进行业务数据逻辑写入;
[0021] 步骤SP5:在步骤SP3中的Document标签下创建WriteText或WriteMark标签,进行配置业务数据的定位属性。
[0022] 进一步地,进行配置业务PDF文件相关属性、业务数据定位属性的方法为:
[0023] 步骤S1:读取PDF模板文件设置的XML配置解析操作(PDF配置类);
[0024] 步骤S2:在PDF业务类中初始化业务数据并设置业务名称,PDF业务类继承PDF基础类(PDF业务类,PDF基础类);
[0025] 步骤S3:在PDF工厂类中扩展PDF业务类实例化对象操作步骤S2(PDF工厂类,PDF业务类);
[0026] 步骤S4:根据步骤S2中业务名称来获取对应XML配置的步骤S1的PDF模板文件路径属性和Document属性(PDF基础类,PDF配置类);
[0027] 步骤S5:在步骤S3中给PDF基础类型变量设置生成PDF文件的路径(PDF工厂类,PDF基础类);
[0028] 步骤S6:根据步骤S2中业务名称和index参数来获取XML配置中步骤S1中的业务数据定位属性(PDF基础类,PDF配置类)。
[0029] 进一步地,所述步骤SP4中,进行业务数据逻辑写入的方法为:
[0030] 步骤X001:根据步骤S4获取的Document属性来实例化Document对象,以所述Document对象为参数和生成PDF文件的路径属性为参数,生成PDF写操作对象,打开Document对象的open方法,使用PDF写操作对象来获取PDF内容字节对象;
[0031] 步骤X002:根据步骤S4获取的PDF模板文件为参数来实例化PDF读操作对象;
[0032] 步骤X003:PDF写操作对象根据PDF读操作对象来生成PDF导入页对象,把PDF导入页对象作为PDF内容字节对象的模板数据属性,然后开始PDF内容字节对象的文本操作;
[0033] 步骤X004:调用PDF业务类重写的抽象方法WriteProcess来写入业务数据,然后结束PDF内容字节对象的文本操作,最后关闭Document对象的close方法。
[0034] 进一步地,所述步骤X004中,调用PDF业务类重写的抽象方法WriteProcess来写入业务数据的步骤为:
[0035] 根据步骤S2中的初始化业务数据来进行业务数据的逻辑写入,写入方法调用继承PDF基础类的WriteText或WriteMark方法进行数据写入。
[0036] 进一步地,采用所述WriteText或WriteMark方法进行数据写入过程中调用步骤S6获取的业务数据定位属性来校正业务数据定位信息。
[0037] 进一步地,在所述PDFConfig标签下创建的Product标签包含业务名称、描述、模板文件属性,在所述Product标签下创建的Document标签包含页面大小类型、上下左右的空白留边。
[0038] 进一步地,所述步骤P22中调用PDF合并对象的Execute方法合并输出PDF文件的步骤为:
[0039] 根据业务类型ID列表,循环遍历处理每个PDF业务类,每个PDF业务类获取生成的业务PDF文件;
[0040] 把获取的业务PDF文件添加到PDF文件列表,执行Merge方法把PDF文件列表的业务PDF文件合并输出PDF文件。
[0041] 进一步地,所述步骤SP4中,写入业务数据逻辑时,使用PDF基础类提供的WriteText或WriteMark方法进行数据写入。
[0042] 作为本发明提供的第二个方面,一种PDF文档模型的数据处理组件,所述组件包括:
[0043] PDF基础类:其用于抽象出业务名称、PDF文件页面大小类型、文本对齐、生成PDF文件名称、左空白、右空白、上空白、下空白的属性;
[0044] 还用于定义使用iText组件中类型属性:包含页面大小形状属性、Document属性、PDF写操作属性、PDF读操作属性、PDF内容字节属性、基本字体属性;
[0045] PDF合并类:其用于定义输出PDF文件路径属性、PDF文件列表属性、业务类型ID列表属性,执行合并PDF操作;
[0046] PDF工厂类:其用于定义PDF基础类变量、定义生成的PDF文件属性,还用于创建所有PDF业务类实例化对象;
[0047] PDF业务类:其用于通过继承PDF基础类,定义业务数据属性,实例化对象时生成业务数据对象;通过调用继承类(PDF基础类)设置的业务名称获取XML配置的PDF模板文件路径、Docment属性值;重写WriteProcess方法中进行业务数据写入的逻辑处理,其中各个业务数据写入方法(继承类的WriteText或WriteMark方法)参数的index对应用XML配置文件中WriteText或WriteMark标签的index,配置的定位信息属性用来业务数的定位校正;
[0048] PDF配置类:其为PDF模板文件设置的XML配置的解析类。
[0049] 本发明具有以下有益效果:
[0050] 本发明通过XML配置PDF文档中业务数据定位信息,即通过XML配置,来校正数据定位信息;结合PDF文档的数据处理过程及合并处理功能,通过写入业务数据的方法,只关心业务逻辑写入业务数据即可。
[0051] 当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

[0052] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0053] 图1为本发明进行配置业务数据定位属性配置的示意图;
[0054] 图2为本发明创建该业务的XML配置的示意图;
[0055] 图3为本发明进行数据写入的示意图;
[0056] 图4为本发明调用组件运行过程的示意图。

具体实施方式

[0057] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0058] 本发明为一种PDF文档模型的数据处理方法及处理组件,根据业务PDF报表的业务数据需求设计PDF业务类,该PDF业务类需继承PDF基础类(该PDF基础类封装iText组件的功能),通过业务名称进行XML配置定义输入的PDF模版文件属性,同时定义输出的生成PDF文件属性(该属性通过对继承类(PDF基础类)的生成PDF文件名称属性赋值生成PDF存放文件地址即可);然后就是在业务类对重写抽象的WriteProcess方法中进行业务数据逻辑处理,而业务数据在PDF写入使用WriteText或WriteMark方法来写入到生成的PDF文件,其中业务数据在PDF写入的定位可以通过XML配置来定位校正;同时提供多个业务PDF文件合并PDF文件的功能处理。
[0059] 实施例一:
[0060] 请参阅图1‑3所示,本发明提供一种PDF文档模型的数据处理方法,包括以下步骤:
[0061] 步骤P01:生成业务PDF文件的数据处理过程:
[0062] 步骤P11:创建PDF业务类,所述PDF业务类继承PDF基础类;
[0063] 步骤P12:由PDF工厂类统一处理实例化PDF业务类:首先定义PDF基础类型,在PDF工厂类的构造方法中扩展增加PDF业务类的实例化对象,同时给PDF工厂类定义返回的生成PDF文件属性,所述PDF文件属性用于返回业务生成的PDF文件地址,并定义生成的PDF文件地址来输出业务PDF文件;
[0064] 步骤P02:多业务合并PDF的处理过程(合并PDF文件的处理过程:可以选择多个业务,把多个业务生成的PDF文件合并生成一个PDF文件):
[0065] 步骤P21:实例化PDF合并类对象,初始化输出PDF文件路径属性值,根据多业务需求把业务类型ID添加到业务类型ID列表;
[0066] 步骤P22:调用PDF合并对象的Execute方法合并输出PDF文件。
[0067] 类关系实施说明:
[0068] 生成业务PDF文件的处理过程:首先创建一个业务类,该类继承PDF基础类,这样业务类重写PDF基础类的WriteProcess抽象方法,在该方法中进行业务数据写入,通过WriteText或WriteMark方法(PDF基础类提供)进行数据写入;最后通过工厂类,统一实例化业务对象,并定义生成PDF文件名称地址来输出业务PDF文件:作为本发明提供的一个实施例,优选的,所述PDF文件属性的生成方法为:
[0069] 步骤SP1:定义一个PDF业务类,重写PDF基础类的WriteProcess方法;
[0070] 步骤SP2:创建步骤SP1中PDF业务类的构造方法,用于业务数据的初始化数据,并调用业务名称属性赋值、设置业务名称(见图3);
[0071] 步骤SP3:根据步骤SP2中设置的业务名称,创建对应业务的XML配置(见图2),在PDFConfig标签下创建Product标签(包含业务名称,描述,模板文件属性),然后在Product标签下创建Document标签(包含页面大小类型,上下左右的空白留边);
[0072] 步骤SP4:在步骤SP1重写的WriteProcess方法中进行业务数据逻辑写入;
[0073] 步骤SP5:在步骤SP3中的Document标签下创建WriteText或WriteMark标签,进行配置业务数据的定位属性(见图1)。
[0074] 作为本发明提供的一个实施例,优选的,进行配置业务PDF文件相关属性、业务数据定位属性的方法为:
[0075] 步骤S1:读取PDF模板文件设置的XML配置解析操作(PDF配置类);
[0076] 步骤S2:在PDF业务类中初始化业务数据并设置业务名称,PDF业务类继承PDF基础类(PDF业务类,PDF基础类);
[0077] 步骤S3:在PDF工厂类中扩展PDF业务类实例化对象操作步骤S2(PDF工厂类,PDF业务类);
[0078] 步骤S4:根据步骤S2中业务名称来获取对应XML配置的步骤S1的PDF模板文件路径属性和Document属性(PDF基础类,PDF配置类);
[0079] 步骤S5:在步骤S3中给PDF基础类型变量设置生成PDF文件的路径(PDF工厂类,PDF基础类);
[0080] 步骤S6:根据步骤S2中业务名称和index参数来获取XML配置中步骤S1中的业务数据定位属性(PDF基础类,PDF配置类)。
[0081] 作为本发明提供的一个实施例,优选的,所述步骤SP4中,进行业务数据逻辑写入的方法为:
[0082] 步骤X001:根据步骤S4获取的Document属性来实例化Document对象,以所述Document对象为参数和步骤S7中生成PDF文件路径属性为参数,生成PDF写操作对象,打开Document对象的open方法,使用PDF写操作对象来获取PDF内容字节对象;
[0083] 步骤X002:根据步骤S4获取的PDF模板文件为参数来实例化PDF读操作对象;
[0084] 步骤X003:PDF写操作对象根据PDF读操作对象来生成PDF导入页对象,把PDF导入页对象作为PDF内容字节对象的模板数据属性,然后开始PDF内容字节对象的文本操作;
[0085] 步骤X004:调用PDF业务类重写的抽象方法WriteProcess来写入业务数据,然后结束PDF内容字节对象的文本操作,最后关闭Document对象的close方法。
[0086] 作为本发明提供的一个实施例,优选的,所述步骤X004中,调用PDF业务类重写的抽象方法WriteProcess来写入业务数据的步骤为:
[0087] 根据步骤S2中的初始化业务数据来进行业务数据的逻辑写入,写入方法调用继承PDF基础类的WriteText或WriteMark方法进行数据写入。
[0088] 作为本发明提供的一个实施例,优选的,采用所述WriteText或WriteMark方法进行数据写入过程中调用步骤S6获取的业务数据定位属性来校正业务数据定位信息。
[0089] 作为本发明提供的一个实施例,优选的,在所述PDFConfig标签下创建的Product标签包含业务名称、描述、模板文件属性,在所述Product标签下创建的Document标签包含页面大小类型、上下左右的空白留边。
[0090] 作为本发明提供的一个实施例,优选的,所述步骤P22中调用PDF合并对象的Execute方法合并输出PDF文件的步骤为:
[0091] 根据业务类型ID列表,循环遍历处理每个PDF业务类,每个PDF业务类获取生成的业务PDF文件;
[0092] 把获取的业务PDF文件添加到PDF文件列表,执行Merge方法把PDF文件列表的业务PDF文件合并输出PDF文件。
[0093] 作为本发明提供的一个实施例,优选的,所述步骤SP4中,写入业务数据逻辑时,使用PDF基础类提供的WriteText或WriteMark方法进行数据写入(见图3)。
[0094] 实施例二:
[0095] 如图4所示,本发明提供一种PDF文档模型的数据处理组件,所述组件包括:
[0096] PDF基础类:其用于抽象出业务名称、PDF文件页面大小类型、文本对齐、生成PDF文件名称、左空白、右空白、上空白、下空白的属性;
[0097] 还用于定义使用iText组件中类型属性:包含的页面大小形状属性、Document属性、PDF写操作属性、PDF读操作属性、PDF内容字节属性、基本字体属性;
[0098] WritePDF方法:调用该方法进行PDF读写数据处理,操作过程获取PDF模板文件,建立Document对象并打开,通过实例化PDF写操作对象,来生成PDF内容字节对象;通过PDF模板文件生成PDF读操作对象,进而生成PDF导入页对象,把该对象添加到PDF内容字节对象的模板中,然后PDF内容字节对象打开文字写入,调用抽象写入方法(WriteProcess方法:用于具体业务类实现),PDF内容字节对象关闭文字写入,最后关闭Document对象;
[0099] WriteProcess方法:抽象写入方法(用于具体实体类实现);
[0100] WriteText方法:通过PDF内容字节对象的方法写入文字;
[0101] WriteMark方法:通过PDF内容字节对象的方法写入标记文字(如:"■");
[0102] PDF合并类:其用于定义输出PDF文件路径属性、PDF文件列表属性、业务类型ID列表属性,执行合并PDF操作;
[0103] Execute方法:根据业务类型ID列表,循环使用PDF工厂类来实现业务类实例化对象,把PDF工厂类输出生成的PDF文件添加到PDF文件列表,最后调用Merge方法来合并PDF文件列表生成到输出PDF文件中;
[0104] Merge方法:通过读取第一个PDF文件来创建PDF读操作对象,再根据PDF读操作对象的页面大小形状属性来创建Document对象,并通过该Document对象,和输出PDF文件为参数来创建PDF复制操作对象,打开Document对象,根据PDF文件列表,循环把每个PDF文件生成的PDF读操作对象,写入PDF复制操作对象中,最后关闭Document对象;
[0105] PDF工厂类:其用于定义PDF基础类变量、定义生成的PDF文件属性,还用于创建所有PDF业务类实例化对象;
[0106] PDF业务类:其用于通过继承PDF基础类(见图1),定义业务数据属性,实例化对象时生成业务数据对象;通过调用继承类(PDF基础类)设置的业务名称获取XML配置的PDF模板文件路径、Docment属性值;重写WriteProcess方法中进行业务数据写入的逻辑处理,其中各个业务数据写入方法(继承类的WriteText或WriteMark方法)参数的index对应用XML配置文件中WriteText或WriteMark标签的index,配置的定位信息属性用来业务数的定位校正;
[0107] PDF配置类:其为PDF模板文件设置的XML配置的解析类,以下为每个PDF业务类实现的配置说明:
[0108] 1.根据业务名称来获取PDF模板文件路径,PDF描述;
[0109] 2.根据业务名称来获取Document的PageSize,Marginleft,Marginright,Margintop,Marginbottom的属性值;
[0110] 3.在PDF业务类中的调用写入文字方法时,会根据业务名称和index来获取对应业务数据写入的定位信息:PosX,PosY,FontSize,TextAlign,rotation的属性值。
[0111] 实施例三:
[0112] 如图4所示,调用组件运行过程为:
[0113] 步骤S1:读取PDF模板文件设置的XML配置解析操作(PDF配置类);
[0114] 步骤S2:在PDF业务类中初始化业务数据并设置业务名称,PDF业务类继承PDF基础类(PDF业务类,PDF基础类);
[0115] 步骤S3:在PDF工厂类中扩展PDF业务类实例化对象操作步骤S2(PDF工厂类,PDF业务类);
[0116] 步骤S4:根据步骤S2中业务名称来获取对应XML配置的步骤S1的PDF模板文件路径属性和Document属性(PDF基础类,PDF配置类);
[0117] 步骤S5:在步骤S3中给PDF基础类型变量设置生成PDF文件的路径(PDF工厂类,PDF基础类);
[0118] 步骤S6:根据步骤S2中业务名称和index参数来获取XML配置中步骤S1中的业务数据定位属性(PDF基础类,PDF配置类);
[0119] 步骤S7:生成业务PDF文件的数据处理过程:在步骤S3中以PDF基础类型变量来实例化PDF合并类对象,在步骤S5设置PDF基础类型对象的生成PDF文件路径属性,调用PDF基础类型对象的WritePDF方法来写入PDF处理过程S8;
[0120] 步骤S8:WritePDF方法来写入PDF处理过程:根据S4获取的Document属性来实例化Document对象,根据该Document对象为参数和S7中生成PDF文件路径属性为参数,生成PDF写操作对象,打开Document对象的open方法,使用该PDF写操作对象来获取PDF内容字节对象,根据S4获取的PDF模板文件为参数来实例化PDF读操作对象,然后PDF写操作对象根据该PDF读操作对象来生成PDF导入页对象,把该PDF导入页对象作为PDF内容字节对象的模板数据属性,然后开始PDF内容字节对象的文本操作,调用抽象方法WriteProcess来业务数据写入S9(业务类要重写该抽象方法来业务数据写入),然后结束PDF内容字节对象的文本操作,最后关闭Document对象的close方法。
[0121] 步骤S9:业务类重写的抽象方法WriteProcess来业务数据写入:根据S2中的初始化业务数据来进行业务数据的逻辑写入,写入方法调用继承PDF基础类的WriteText或WriteMark方法进行数据写入,该WriteText或WriteMark方法处理过程会调用S6获取的业务数据定位属性来校正业务数据定位信息。
[0122] 步骤S10:多业务合并PDF的处理过程:实例化PDF合并类对象,初始化输出PDF文件路径属性值,根据多业务需求把业务类型ID添加到业务类型ID列表属性,最后调用PDF合并对象的Execute方法S11。
[0123] 步骤S11:合并PDF对象的Execute方法:根据S10中业务类型ID列表,循环遍历处理每个业务类,每个业务类通过S3来获取生成的业务PDF文件,把获取生成的业务PDF文件添加到PDF文件列表属性,最后执行Merge方法,该方法实现把PDF文件列表的PDF文件数据合并到S10的输出PDF文件的处理过程。
[0124] 一种PDF文档模型的数据处理方法及处理组件,通过XML配置PDF文档中业务数据定位信息,即通过XML配置,来校正数据定位信息;结合PDF文档的数据处理过程及合并处理功能,通过写入业务数据的方法,只关心业务逻辑写入业务数据即可。
[0125] 在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0126] 以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。