本发明涉及文件组合领域,尤其涉及一种基于linux服务器的word文件组合方法及系统。
背景技术:
1、文档生成的主要技术是基于微软开放的sdk来实现各种模板文档的输出。基于java语言的实现,在win平台有jacob,跨平台有apose,docx4j。jacob在win平台上,主要还是基于宏或编程语言(vba)来处理文档。apose是商用产品,它通过安装本地库,来支持word的处理。docx4j是一个半开源的产品,基本的word处理是开放的,但是像word的组合等高阶需求,docx4j只提供商用版的支持。
2、jacob由于是基于win平台,同时服务器还得安装office,在可用性方面不高,并发处理也不支持,apose以及docx4j在word的组合等功能是闭源软件无法任意使用,因此使用现有软件进行文件组合的成本很高,且调用起来并不方便。
技术实现思路
1、为解决上述技术问题,本发明提供一种基于linux服务器的word文件组合方法,包括:
2、s1:获取一个主word文件和多个子word文件,将主word文件转换为主xml文件,将各子word文件转换为对应的子xml文件;
3、s2:将各子xml文件与主xml文件进行组合,获得组合xml文件;
4、s3:将组合xml文件转换为组合word文件。
5、优选的,步骤s1具体为:
6、s11:获取主word文件的逻辑结构和数据结构,以及各子word文件的逻辑结构和数据结构;
7、s12:通过主word文件的逻辑结构和数据结构获得主word文件的主标签对象id,通过各子word文件的逻辑结构和数据结构获得各子word文件对应的子标签对象id;
8、s13:将主word文件转换为主xml文件,主xml文件继承主word文件的主标签对象id、逻辑结构和数据结构;
9、s14:将各子word文件转换为对应的子xml文件,各子xml文件继承对应的子word文件的子标签对象id、逻辑结构和数据结构。
10、优选的,步骤s2具体为:
11、s21:设置组合xml文件的逻辑结构,根据组合xml文件的逻辑结构构建主标签对象id与各子标签对象id之间的映射关系;
12、s22:将各子xml文件按照映射关系组合至主xml文件中,获得组合xml文件。
13、优选的,映射关系的构建过程为:
14、设置在组合xml文件中各xml文件的放置顺序,根据放置顺序将各xml文件对应的标签对象id进行排序。
15、优选的,步骤s22具体为:
16、根据映射关系将各子xml文件和主xml文件在组合xml文件中的位置进行排序,通过各xml文件的逻辑结构和数据结构在对应的位置生成字符串文本,生成组合xml文件。
17、一种基于linux服务器的word文件组合系统,包括:
18、word转xml模块,用于获取一个主word文件和多个子word文件,将主word文件转换为主xml文件,将各子word文件转换为对应的子xml文件;
19、组合模块,用于将各子xml文件与主xml文件进行组合,获得组合xml文件;
20、xml转word模块,用于将组合xml文件转换为组合word文件。
21、本发明具有以下有益效果:
22、本发明通过在word文件与xml文件之间构建映射关系,使得xml文件可以继承word文件的标签对象id、逻辑结构和数据结构,使得xml文件可以通过标签对象id的排序进行任意组合,再将组合xml文件转换为组合word文件,实现word文件的低成本组合。
1.一种基于linux服务器的word文件组合方法,其特征在于,包括:
2.根据权利要求1所述的基于linux服务器的word文件格式生成方法,其特征在于,步骤s1具体为:
3.根据权利要求2所述的基于linux服务器的word文件格式生成方法,其特征在于,步骤s2具体为:
4.根据权利要求3所述的基于linux服务器的word文件格式生成方法,其特征在于,映射关系的构建过程为:
5.根据权利要求3所述的基于linux服务器的word文件格式生成方法,其特征在于,步骤s22具体为:
6.一种基于linux服务器的word文件组合系统,其特征在于,包括: