一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于模板引擎的文档生成方法、装置、设备及介质与流程

2022-03-26 14:41:28 来源:中国专利 TAG:


1.本发明涉及文档管理技术领域,尤其涉及一种基于模板引擎的文档生成方法、装置、计算机设备及存储介质。


背景技术:

2.目前在java中生成word文档主要使用freemarker模板引擎。由于freemarker本身不支持直接修改word文档,需要将含有标签的word文档人工转换为xml结构的模板文件,并修正转换过程中出现的错误标签后才能生成新的word文档,这样就导致在java中生成word文档的效率低下。


技术实现要素:

3.本发明实施例提供了一种基于模板引擎的文档生成方法、装置、计算机设备及存储介质,旨在解决现有技术中在java中使用freemarker模板引擎生成word文档时需将含有标签的word文档人工转换为xml结构的模板文件,导致在java中生成word文档的效率低下的问题。
4.第一方面,本发明实施例提供了一种基于模板引擎的文档生成方法,其包括:
5.获取初始word文档和标签集,根据所接收标签插入指令将标签集中每一标签插入至所述初始word文档中的对应位置,得到调整word文档;
6.将所述调整word文档中的标签根据预设的键-值对映射关系配置成数据模型,得到配置后word文档;以及
7.获取预设的模板引擎,将所述配置后word文档通过所述模板引擎加载,得到更新word文档。
8.第二方面,本发明实施例提供了一种基于模板引擎的文档生成装置,其包括:
9.标签插入单元,用于获取初始word文档和标签集,根据所接收标签插入指令将标签集中每一标签插入至所述初始word文档中的对应位置,得到调整word文档;
10.数据模型配置单元,用于将所述调整word文档中的标签根据预设的键-值对映射关系配置成数据模型,得到配置后word文档;以及
11.模板引擎加载单元,用于获取预设的模板引擎,将所述配置后word文档通过所述模板引擎加载,得到更新word文档。
12.第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的基于模板引擎的文档生成方法。
13.第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的基于模板引擎的文档生成方法。
14.本发明实施例提供了一种基于模板引擎的文档生成方法、装置、计算机设备及存
储介质,先获取初始word文档和标签集,根据所接收标签插入指令将标签集中每一标签插入至所述初始word文档中的对应位置,得到调整word文档;然后将所述调整word文档中的标签根据预设的键-值对映射关系配置成数据模型,得到配置后word文档;最后获取预设的模板引擎,将所述配置后word文档通过所述模板引擎加载,得到更新word文档。实现了直接使用已有的word文档作为模板生成新文档,不再需要将word文档转换成xml结构,避免了转换过程可能导致的错误,提高了在java中生成word文档的效率。
附图说明
15.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1为本发明实施例提供的基于模板引擎的文档生成方法的应用场景示意图;
17.图2为本发明实施例提供的基于模板引擎的文档生成方法的流程示意图;
18.图3为本发明实施例提供的基于模板引擎的文档生成装置的示意性框图;
19.图4为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
20.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
22.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
23.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
24.请参阅图1和图2,图1为本发明实施例提供的基于模板引擎的文档生成方法的应用场景示意图;图2为本发明实施例提供的基于模板引擎的文档生成方法的流程示意图,该基于模板引擎的文档生成方法应用于用户端中,该方法通过安装于用户端中的应用软件进行执行。
25.如图2所示,该方法包括步骤s101~s103。
26.s101、获取初始word文档和标签集,根据所接收标签插入指令将标签集中每一标签插入至所述初始word文档中的对应位置,得到调整word文档。
27.在本实施例中,是以用户端为执行主体来描述技术方案。其中,所述标签集中每一标签均包括起始标识符和终止标识符。当用户操作用户端选定了初始word文档,并且针对该初始word文档设置了标签集,此时可以将标签集中每一标签插入至所述初始word文档中
的对应位置,从而实现了对初始word文档的初步编辑。
28.例如,用户可以在用户端上初步编写初始word文档且在插入标签集。标签集中的标签以“{{”开头,以“}}”结尾(例如“{{name}}”就是一个标签),标签可以出现在任何位置,包括页眉、页脚、表格内部、和文本框等。当然,针对初始word文档的上述边界,文档的样式会被完全保留,标签的样式也会应用在替换后的文本上,其中初始word文档和调整word文档均为docx格式文件。在完成了对初始word文档的标签插入后,还可以分别统计调整word文档中标签的第一总个数,以及统计标签集中标签的第二总个数,若确定第一总个数和第二总个数相等则表示标签集中的所有标签均插入至初始word文档中且成功完成了标签插入。若确定第一总个数小于第二总个数则表示标签集中有标签还未插入至初始word文档中,此时可以发出弹窗提示用户是否确认完成标签插入,只有用户选定确认完成标签插入才能只插入标签集中的部分标签至初始word文档中。
29.在一实施例中,步骤s101包括:
30.若确定标签为页眉属性标签,将所述标签插入至所述初始word文档中的页眉中,得到调整word文档;
31.若确定标签为页脚属性标签,将所述标签插入至所述初始word文档中的页脚中,得到调整word文档;
32.若确定标签为表格属性标签,将所述标签插入至所述初始word文档中的表格中,得到调整word文档;
33.若确定标签为文本框属性标签,将所述标签插入至所述初始word文档中的文本框中,得到调整word文档。
34.在本实施例中,在初始word文档中的页眉、页脚、表格内部、文本框等位置中均可以插入如上述{{xxx}}格式的标签,而且在初始word文档中每增加一个标签都会对初始word文档进行更新,直至标签编辑完毕时则得到编辑阶段最终更新保存的调整word文档。这样基于后续所使用的模板引擎“所见即所得”的特性,文档的样式会被完全保留,标签的样式也会应用在替换后的文本上。而且标签的插入过程简单,无需复杂的操作,降低了操作人员的学习成本,提高了开发效率。
35.s102、将所述调整word文档中的标签根据预设的键-值对映射关系配置成数据模型,得到配置后word文档。
36.在本实施例中,当得到了调整word文档后,需要对其中的所有标签基于预设的键-值对映射关系配置成数据模型,也就是将每个标签转化为对应的具体数值,从而得到了配置后word文档。
37.在一实施例中,步骤s102包括:
38.获将所述调整word文档中的每一标签根据所述键-值对映射关系配置成数值以作为标签的数据模型,得到配置后word文档。
39.在本实施例中,将调整word文档中的每一标签配置成数据模型,可采用map(一种“键-值”对的映射关系)类型将标签和具体数值配对,以实现快速对调整word文档的配置,便于后续基于模板引擎进行新文档的生成。例如,其中一个“键-值”对的映射关系是{{name}}这一标签对应取值3,则将{{name}}这一标签转换成数值3作为标签的数据模型,当完成了对所述调整word文档中所有标签的键-值对映射关系配置成数值之后,即可得到
配置后word文档。为了与所述调整word文档中正文文本中的数值以示区分,可以将标签根据所述键-值对映射关系配置成数值时,将每一个配置得到的数值都增加keylabel前缀,例如之前{name}}这一标签转换成数值3后还在数值3之前加上keylabel得到keylabel3之一表示方式,从而有效与文本中的数字字符串有效区分。
40.s103、获取预设的模板引擎,将所述配置后word文档通过所述模板引擎加载,得到更新word文档。
41.在本实施例中,预设的模板引擎可以采用poi-tl模板引擎(poi-tl的全称是poi template language,表示word模板引擎,使用word模板和数据创建的word文档),使用poi-tl模板引擎加载所述配置后word文档并关联数据模型(也就是关联到调整word文档中每个标签对应的数据模型)后,即可得到更新word文档。在poi-tl模板引擎加载所述配置后word文档并关联数据模型的过程中,poi-tl模板引擎会自动将docx格式文件中的标签整体替换为数据模型对应的具体数值,从而完成整个转换过程。可见,通过简单的在初始文档中加标签的方式并结合poi-tl模板引擎即可在java中生成word文档,提高了word文档的生成效率。
42.在一实施例中,步骤s103之后还包括:
43.获取输出路径,将所述更新word文档发送至所述输出路径对应的存储区域进行存储。
44.在本实施例中,当在用户端中基于加标签的方式并结合poi-tl模板引擎即可在java中生成word文档,所得到的更新word文档还需保存下来以便于后续查看。此时只需先获取输出路径,将将所述更新word文档发送至所述输出路径对应的存储区域进行存储即可,这样也确保了新生成的文档得到了及时的保存。而且还可以将所述更新word文档上传至服务器进行云端保存,以进一步确保数据安全。
45.该方法实现了直接使用已有的word文档作为模板生成新文档,不再需要将word文档转换成xml结构,避免了转换过程可能导致的错误,提高了在java中生成word文档的效率。
46.本发明实施例还提供一种基于模板引擎的文档生成装置,该基于模板引擎的文档生成装置用于执行前述基于模板引擎的文档生成方法的任一实施例。具体地,请参阅图3,图3是本发明实施例提供的基于模板引擎的文档生成装置100的示意性框图。
47.其中,如图3所示,基于模板引擎的文档生成装置100包括标签插入单元101、数据模型配置单元102、模板引擎加载单元103。
48.标签插入单元101,用于获取初始word文档和标签集,根据所接收标签插入指令将标签集中每一标签插入至所述初始word文档中的对应位置,得到调整word文档。
49.在本实施例中,是以用户端为执行主体来描述技术方案。其中,所述标签集中每一标签均包括起始标识符和终止标识符。当用户操作用户端选定了初始word文档,并且针对该初始word文档设置了标签集,此时可以将标签集中每一标签插入至所述初始word文档中的对应位置,从而实现了对初始word文档的初步编辑。
50.例如,用户可以在用户端上初步编写初始word文档且在插入标签集。标签集中的标签以“{{”开头,以“}}”结尾(例如“{{name}}”就是一个标签),标签可以出现在任何位置,包括页眉、页脚、表格内部、和文本框等。当然,针对初始word文档的上述边界,文档的样式
会被完全保留,标签的样式也会应用在替换后的文本上,其中初始word文档和调整word文档均为docx格式文件。在完成了对初始word文档的标签插入后,还可以分别统计调整word文档中标签的第一总个数,以及统计标签集中标签的第二总个数,若确定第一总个数和第二总个数相等则表示标签集中的所有标签均插入至初始word文档中且成功完成了标签插入。若确定第一总个数小于第二总个数则表示标签集中有标签还未插入至初始word文档中,此时可以发出弹窗提示用户是否确认完成标签插入,只有用户选定确认完成标签插入才能只插入标签集中的部分标签至初始word文档中。
51.在一实施例中,标签插入单元101包括:
52.第一类型插入单元,用于若确定标签为页眉属性标签,将所述标签插入至所述初始word文档中的页眉中,得到调整word文档;
53.第二类型插入单元,用于若确定标签为页脚属性标签,将所述标签插入至所述初始word文档中的页脚中,得到调整word文档;
54.第三类型插入单元,用于若确定标签为表格属性标签,将所述标签插入至所述初始word文档中的表格中,得到调整word文档;
55.第四类型插入单元,用于若确定标签为文本框属性标签,将所述标签插入至所述初始word文档中的文本框中,得到调整word文档。
56.在本实施例中,在初始word文档中的页眉、页脚、表格内部、文本框等位置中均可以插入如上述{{xxx}}格式的标签,而且在初始word文档中每增加一个标签都会对初始word文档进行更新,直至标签编辑完毕时则得到编辑阶段最终更新保存的调整word文档。这样基于后续所使用的模板引擎“所见即所得”的特性,文档的样式会被完全保留,标签的样式也会应用在替换后的文本上。而且标签的插入过程简单,无需复杂的操作,降低了操作人员的学习成本,提高了开发效率。
57.数据模型配置单元102,用于将所述调整word文档中的标签根据预设的键-值对映射关系配置成数据模型,得到配置后word文档。
58.在本实施例中,当得到了调整word文档后,需要对其中的所有标签基于预设的键-值对映射关系配置成数据模型,也就是将每个标签转化为对应的具体数值,从而得到了配置后word文档。
59.在一实施例中,数据模型配置单元102还用于:
60.获将所述调整word文档中的每一标签根据所述键-值对映射关系配置成数值以作为标签的数据模型,得到配置后word文档。
61.在本实施例中,将调整word文档中的每一标签配置成数据模型,可采用map(一种“键-值”对的映射关系)类型将标签和具体数值配对,以实现快速对调整word文档的配置,便于后续基于模板引擎进行新文档的生成。例如,其中一个“键-值”对的映射关系是{{name}}这一标签对应取值3,则将{{name}}这一标签转换成数值3作为标签的数据模型,当完成了对所述调整word文档中所有标签的键-值对映射关系配置成数值之后,即可得到配置后word文档。为了与所述调整word文档中正文文本中的数值以示区分,可以将标签根据所述键-值对映射关系配置成数值时,将每一个配置得到的数值都增加keylabel前缀,例如之前{name}}这一标签转换成数值3后还在数值3之前加上keylabel得到keylabel3之一表示方式,从而有效与文本中的数字字符串有效区分。
62.模板引擎加载单元103,用于获取预设的模板引擎,将所述配置后word文档通过所述模板引擎加载,得到更新word文档。
63.在本实施例中,预设的模板引擎可以采用poi-tl模板引擎,使用poi-tl模板引擎加载所述配置后word文档并关联数据模型(也就是关联到调整word文档中每个标签对应的数据模型)后,即可得到更新word文档。在poi-tl模板引擎加载所述配置后word文档并关联数据模型的过程中,poi-tl模板引擎会自动将docx格式文件中的标签整体替换为数据模型对应的具体数值,从而完成整个转换过程。可见,通过简单的在初始文档中加标签的方式并结合poi-tl模板引擎即可在java中生成word文档,提高了word文档的生成效率。
64.在一实施例中,基于模板引擎的文档生成装置100还包括:
65.文档输出保存单元,用于获取输出路径,将所述更新word文档发送至所述输出路径对应的存储区域进行存储。
66.在本实施例中,当在用户端中基于加标签的方式并结合poi-tl模板引擎即可在java中生成word文档,所得到的更新word文档还需保存下来以便于后续查看。此时只需先获取输出路径,将将所述更新word文档发送至所述输出路径对应的存储区域进行存储即可,这样也确保了新生成的文档得到了及时的保存。而且还可以将所述更新word文档上传至服务器进行云端保存,以进一步确保数据安全。
67.该装置实现了直接使用已有的word文档作为模板生成新文档,不再需要将word文档转换成xml结构,避免了转换过程可能导致的错误,提高了在java中生成word文档的效率。
68.上述基于模板引擎的文档生成装置可以实现为计算机程序的形式,该计算机程序可以在如图4所示的计算机设备上运行。
69.请参阅图4,图4是本发明实施例提供的计算机设备的示意性框图。该计算机设备500是用户端,用户端可以是智能手机、台式电脑、平板电脑、手提电脑等。
70.参阅图4,该计算机设备500包括通过装置总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括存储介质503和内存储器504。
71.该存储介质503可存储操作装置5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行基于模板引擎的文档生成方法。
72.该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
73.该内存储器504为存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行基于模板引擎的文档生成方法。
74.该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图4中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
75.其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现本发明实施例公开的基于模板引擎的文档生成方法。
76.本领域技术人员可以理解,图4中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存
储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图4所示实施例一致,在此不再赘述。
77.应当理解,在本发明实施例中,处理器502可以是中央处理单元(central processing unit,cpu),该处理器502还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
78.在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质,也可以为易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现本发明实施例公开的基于模板引擎的文档生成方法。
79.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
80.在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
81.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
82.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
83.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,后台服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分
步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、磁碟或者光盘等各种可以存储程序代码的介质。
84.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献