CN109657215A - 基于模板的文档生成方法、设备、存储介质及装置 - Google Patents

基于模板的文档生成方法、设备、存储介质及装置 Download PDF

Info

Publication number
CN109657215A
CN109657215A CN201811135646.5A CN201811135646A CN109657215A CN 109657215 A CN109657215 A CN 109657215A CN 201811135646 A CN201811135646 A CN 201811135646A CN 109657215 A CN109657215 A CN 109657215A
Authority
CN
China
Prior art keywords
template
target
document
placeholder
structure tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811135646.5A
Other languages
English (en)
Inventor
刘明东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OneConnect Smart Technology Co Ltd
Original Assignee
OneConnect Smart Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by OneConnect Smart Technology Co Ltd filed Critical OneConnect Smart Technology Co Ltd
Priority to CN201811135646.5A priority Critical patent/CN109657215A/zh
Publication of CN109657215A publication Critical patent/CN109657215A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明公开了一种基于模板的文档生成方法、设备、存储介质及装置,该方法包括:生成各业务场景的预设文档模板并将所述预设文档模板保存到服务器;根据用户输入的模板获取指令从服务器中提取目标文档模板;获取目标变量,并在所述目标文档模板中定位所述目标变量对应的目标占位符;判断所述目标变量与目标占位符的数量是否一致;若一致,将所述目标变量插值至对应的目标占位符处,以生成目标业务文档。本发明中,在将目标变量插值至对应的目标占位符处之前,判断所述目标变量与所述目标占位符的数量是否一致,如果一致则进行插值,保证了目标占位符均填充了目标变量,使得插值过程更加准确,从而使得目标业务文档的生成更加准确、失误更少。

Description

基于模板的文档生成方法、设备、存储介质及装置
技术领域
本发明涉及模板引擎技术领域,尤其涉及一种基于模板的文档生成方法、设备、存储介质及装置。
背景技术
银行客户在银行办理业务时,一般需要根据不同的业务场景使用不同的业务文档,若每次都人工编写业务文档,易出现两类问题,一是人工输入难免存在疏忽,带来错误,以及文档内容不精确、不完整等,二是效率较低、耗时较长及成本较高。
Freemarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。Freemarker可将目标变量数据插入到目标模板中的目标占位符中,从而生成带有目标变量数据的指定格式的目标业务文档,使用freemarker制作模板能提高文档的编写效率和精确度。但是,如果目标模板中部分目标占位符没填充目标变量,freemarker将不能解析出目标业务文档,后台会报错。因此,提高插值过程的准确度,保障插值过程的顺利实施,减少插值过程的失误是亟待解决的技术问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种基于模板的文档生成方法、设备、存储介质及装置,旨在解决现有技术中基于模板的文档生成中插值过程准确度较低的技术问题。
为实现上述目的,本发明提供一种基于模板的文档生成方法,所述基于模板的文档生成方法包括以下步骤:
根据用户输入的模板获取指令从服务器中提取目标文档模板;
获取目标变量,并在所述目标文档模板中定位所述目标变量对应的目标占位符;
判断所述目标变量与所述目标占位符的数量是否一致;
若一致,将所述目标变量插值至所述目标文档模板中对应的目标占位符处,以生成目标业务文档。
优选地,所述根据用户输入的模板获取指令从服务器中提取目标文档模板之前,所述基于模板的文档生成方法还包括:
采集业务场景的业务文档信息;
根据所述业务文档信息生成预设文档模板,并将所述预设文档模板保存到服务器。
优选地,所述根据所述业务文档信息生成预设文档模板,并将所述预设文档模板保存到服务器,包括:
根据所述业务文档信息生成doc格式的第一初级模板;
将所述第一初级模板转化为XML格式的第二初级模板;
将所述第二初级模板转化为ftl格式的预设文档模板,并将所述预设文档模板保存到服务器。
优选地,所述根据用户输入的模板获取指令从服务器中提取目标文档模板,包括:
从用户输入的模板获取指令中提取当前业务场景;
从所述服务器存储的预设文档模板中查找并获取所述当前业务场景对应的目标文档模板。
优选地,所述获取目标变量,并在所述目标文档模板中定位所述目标变量对应的目标占位符,包括:
接收用户输入的配置文件,从所述配置文件中顺序提取所述目标变量;
在所述目标文档模板中定位所述目标变量对应的目标占位符。
优选地,所述在所述目标文档模板中定位所述目标变量对应的目标占位符,包括:
获取所述目标文档模板中的目标占位符与所述目标占位符的顺序;
根据所述目标占位符的顺序与所述目标变量的预设顺序将目标变量与目标占位符进行关联;
在所述目标文档模板中定位所述目标变量对应的目标占位符。
优选地,所述若一致,将所述目标变量插值至所述目标文档模板中对应的目标占位符处,以生成目标业务文档,包括:
若一致,将所述目标变量插值至对应的目标占位符处,生成目标HTML页面;
将所述目标HTML页面转化为doc格式的目标业务文档。
此外,为实现上述目的,本发明还提出一种基于模板的文档生成设备,所述基于模板的文档生成设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于模板的文档生成程序,所述基于模板的文档生成程序配置为实现如上文所述的基于模板的文档生成方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有基于模板的文档生成程序,所述基于模板的文档生成程序被处理器执行时实现如上文所述的基于模板的文档生成方法的步骤。
此外,为实现上述目的,本发明还提出一种基于模板的文档生成装置,所述基于模板的文档生成装置包括:提取模块、定位模块、判断模块、插值模块;
所述提取模块,用于根据用户输入的模板获取指令从服务器中提取目标文档模板;
所述定位模块,用于获取目标变量,并在所述目标文档模板中定位所述目标变量对应的目标占位符;
所述判断模块,用于判断所述目标变量与所述目标占位符的数量是否一致;
所述插值模块,用于若一致,将所述目标变量插值至所述目标文档模板中对应的目标占位符处,以生成目标业务文档。
本发明中,根据用户输入的模板获取指令从服务器中提取目标文档模板,获取目标变量,并在所述目标文档模板中定位所述目标变量对应的目标占位符,判断所述目标变量与所述目标占位符的数量是否一致,若一致,将所述目标变量插值至所述目标文档模板中对应的目标占位符处,以生成目标业务文档,在将目标变量插值至对应的目标占位符处之前,判断所述目标变量与所述目标占位符的数量是否一致,如果一致则进行插值,保证了目标占位符均填充了目标变量,使得插值过程更加准确,保障插值过程的顺利实施,减少插值过程的失误,从而使得目标业务文档的生成更加准确、失误更少。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的基于模板的文档生成设备结构示意图;
图2为本发明基于模板的文档生成方法第一实施例的流程示意图;
图3为本发明基于模板的文档生成方法第二实施例的流程示意图;
图4为本发明基于模板的文档生成方法第三实施例的流程示意图;
图5为本发明基于模板的文档生成装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的基于模板的文档生成设备结构示意图。
如图1所示,该基于模板的文档生成设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口,对于用户接口1003的有线接口在本发明中可为USB接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的存储器(Non-volatileMemory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对基于模板的文档生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于模板的文档生成程序。
在图1所示的基于模板的文档生成设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接用户设备;所述基于模板的文档生成设备通过处理器1001调用存储器1005中存储的基于模板的文档生成程序,并执行本发明实施例提供的基于模板的文档生成方法。
基于上述硬件结构,提出本发明基于模板的文档生成方法的实施例。
参照图2,图2为本发明基于模板的文档生成方法第一实施例的流程示意图,提出本发明基于模板的文档生成方法第一实施例。
在第一实施例中,所述基于模板的文档生成方法包括以下步骤:
步骤S10:根据用户输入的模板获取指令从服务器中提取目标文档模板。
应理解的是,本实施例的执行主体是基于模板的文档生成设备,其中,所述基于模板的文档生成设备可为个人电脑、服务器等电子设备。银行业务主要分为三类主业务:负债业务、资产业务和中间业务,主业务又细分为若干子业务,例如负债业务主要由存款业务、借款业务以及同业业务等子业务构成,所述业务场景包括全部子业务对应的场景。由于每个业务场景对文档的排版、格式和内容要求都不同,所以针对不同的业务场景均生成对应的预设文档模板。
在具体实现中,本发明的基于模板的文档生成方法是基于freemarker模板引擎的文档生成方法,FreeMarker是一款模板引擎,即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页、电子邮件、配置文件或源代码等)的通用工具。FreeMarker是免费的,基于Apache许可证2.0版本发布。其模板编写语言为FreeMarker Template Language(FTL),属于简单、专用的语言。需要准备数据在真实编程语言中来显示,比如数据库查询和业务运算,之后模板显示已经准备好的数据。在模板中,主要用于如何展现数据,而在模板之外注意于要展示什么数据。对于freemarker模板引擎,只能通过ftl格式的文档模板生成业务文档,因此所述预设文档模板为ftl格式,并将ftl格式的预设文档模板保存至web服务器中,使得后续用户能够通过freemarker在web服务器中获取该预设文档模板,并基于该预设文档模板生成业务文档。
可以理解的是,针对不同的业务场景的需求,用户可以输入不同的模板获取指令,基于模板的文档生成设备会从服务器中提取该业务场景对应的目标文档模板。
在具体实现中,首先从用户输入的所述模板获取指令中提取当前业务场景;从所述服务器存储的所述预设文档模板中查找并获取所述当前业务场景对应的目标文档模板。
需要说明的是,所述模板获取指令为银行人员输入的获取模板的指令,所述目标文档模板为当前客户在当前业务场景下所需办理的文档模板。当银行人员需要通过freemarker编写业务文档时,将启动freemarker。在freemarker中接收用户输入的模板获取指令,从所述模板获取指令中提取当前业务场景,通过freemarker调用web服务器存储的预设文档模板,在所述预设文档模板中选取与所述当前业务场景对应的目标文档模板。
步骤S20:获取目标变量,并在所述目标文档模板中定位所述目标变量对应的目标占位符。
需要说明的是,所述目标变量为需要插入到相应目标定位符的数据,目标变量可以为文字、符号与数字中的一种或多种的组合。在所述目标文档模板中定位所述目标变量对应的目标占位符,即获取所述目标文档模板中的目标占位符与所述目标占位符的顺序,根据所述目标占位符的顺序与所述目标变量的预设顺序将目标变量与目标占位符进行关联,在所述目标文档模板中定位所述目标变量对应的目标占位符,为后续将目标变量插入到相应的目标占位符处做准备。
可以理解的是,所述目标变量为基于目标文档模板的待填写内容,获取目标变量的方法可以是从配置文件中读取,在所述配置文件中,所述目标变量按预设顺序排列;而所述目标占位符代表所述目标变量在所述目标文档模板中对应的位置。在所述目标文档模板中,具有若干个通过目标占位符显示的变量部分,所述目标占位符的顺序与目标变量的顺序相对应。
步骤S30:判断所述目标变量与所述目标占位符的数量是否一致。
可理解的是,目标变量和目标占位符均有多个,统计目标变量的数量和目标占位符的数量,并比较所述目标变量与所述目标占位符的数量是否一致,当一致时,所有的目标变量刚好可以插值到各目标占位符处,每一个目标占位符均填充一个目标变量,此时,目标变量的插值准确,不会出现失误,freemarker的后台不会报错;相反,如果不一致,则freemarker的后台会报错,插值过程出现失误,插值不准确,freemarker无法解析文档模板,将不能最终生成目标业务文档。
步骤40:若一致,将所述目标变量插值至所述目标文档模板中对应的目标占位符处,以生成目标业务文档。
需要说明的是,若所述目标变量与所述目标占位符的数量一致,将目标变量插值至对应的目标占位符处形成完整的文档信息,插值后的文档模板将形成目标业务文档。
可以理解的是,在判断所述目标变量与所述目标占位符的数量一致后,将所述目标变量替换对应的目标占位符,当全部的目标变量替换完成时,即可生成目标业务文档,并且所述目标业务文档为doc格式。
在第一实施例中,根据用户输入的模板获取指令从服务器中提取目标文档模板,获取目标变量,并在所述目标文档模板中定位所述目标变量对应的目标占位符,判断所述目标变量与所述目标占位符的数量是否一致,若一致,将所述目标变量插值至所述目标文档模板中对应的目标占位符处,以生成目标业务文档,在将目标变量插值至对应的目标占位符处之前,判断所述目标变量与所述目标占位符的数量是否一致,如果一致则进行插值,保证了目标占位符均填充了目标变量,使得插值过程更加准确,保障插值过程的顺利实施,减少插值过程的失误,从而使得目标业务文档的生成更加准确、失误更少。
参照图3,图3为本发明基于模板的文档生成方法第二实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明基于模板的文档生成方法的第二实施例。
在第二实施例中,所述步骤S10之前,所述方法还包括:
步骤S01:采集业务场景的业务文档信息。
可以理解的是,银行业务主要分为三类主业务:负债业务、资产业务和中间业务,主业务又细分为若干子业务,例如负债业务主要由存款业务、借款业务以及同业业务等子业务构成,所述业务场景包括全部子业务对应的场景。由于每个业务场景对文档的排版、格式和内容要求都不同,所以针对不同的业务场景均生成对应的预设文档模板,那么需要采集不同业务场景的业务文档信息,根据业务文档信息生成预设文档模板,所述业务文档信息包括文档类型、文档标题、客户信息与业务信息等内容。
步骤S02:根据所述业务文档信息生成预设文档模板,并将所述预设文档模板保存到服务器。
在第二实施例中,所述步骤S02包括:
根据所述业务文档信息生成doc格式的第一初级模板;
将所述第一初级模板转化为XML格式的第二初级模板;
将所述第二初级模板转化为ftl格式的预设文档模板,并将所述预设文档模板保存到服务器。
可理解的是,第一初级模板为doc格式,doc格式的第一初级模板方便用户进行编辑,不需要用户掌握编程技巧,第一初级模板包括固定内容版块和变量内容版块,所述变量内容版块包括若干占位符,变量内容版块为模板中的待填写内容,例如客户姓名、联系方式、交易金额等,第一初级模板的内容根据具体业务场景下的业务文档信息来制定,所述业务文档信息包括文档类型、文档标题、客户信息与业务信息等内容。
需要说明的是,本发明基于模板的文档生成方法是基于freemarker模板引擎的文档生成方法,对于freemarker模板引擎,只能通过ftl格式的文档模板生成业务文档,获取ftl格式的文档模板的常规方式是通过FTL编程直接获得,FTL编程一般需要用到注释、插值、FTL指令,FTL编程得到的FreeMarker模板文件主要由如下4个部分组成:1、文本:直接输出的部分,2、注释:<#--...-->格式部分,不会输出,3、插值:即${...}或#{...}格式的部分,将使用数据模型中的部分替代输出,4、FTL指令:FreeMarker指定,和HTML标记类似,名字前加#予以区分,不会输出;使用FTL编程得到的FreeMarker模板例如,
可见,FTL编程的FreeMarker模板虽然结构上具有一定特点,FTL编程语法并不是很复杂,但是对于普通银行工作人员,学习FTL编程具有一定的时间和精力成本,FTL编程仍然具有一定的难度,为了减少编程过程,本实施例将采用文档格式转化,即通过Word编写doc格式的文档模板,再将doc格式的文档模板转化为ftl格式的文档模板。由于doc格式的文档模板不能直接转化为ftl格式的文档模板,将通过XML格式作为中间格式进行过渡,将doc格式的文档模板转化为XML格式的文档模板,再将XML格式的文档模板转化为ftl格式的文档模板。通过两次转化,将文档模板从doc格式转化为ftl格式,当将各业务场景的第一初级模板进行格式转化之后,即获取了全部业务场景下的ftl格式的预设文档模板,完成了文档模板制作过程,并提高了文档模板制作的普适性。
在具体实现中,上述的doc格式的文档模板转化为XML格式的文档模板后,根据XML文件的情况有时需要对XML文件进行相应处理,例如,占位符被分割的,需要删除中间的word标签,因为只有完整占位符才会被freemarker解析,可以使用notepad或者visulcode工具打开和修改XML文件;对于集合元素,在xml中需要确定循环的具体循环体,防止循环结果错误,找到正确循环体后,在头和尾部额外插入标签<#list集合as参数名></#list>。在获得ftl格式的预设文档模板后,将ftl格式的预设文档模板保存至web服务器中,使得后续用户能够通过freemarker在web服务器中获取该预设文档模板,并基于该预设文档模板生成业务文档。
在第二实施例中,所述步骤S10包括:
步骤101:从用户输入的模板获取指令中提取当前业务场景。
步骤102:从所述服务器存储的预设文档模板中查找并获取所述当前业务场景对应的目标文档模板。
需要说明的是,所述模板获取指令为银行人员输入的获取模板的指令,所述目标文档模板为当前客户在当前业务场景下所需办理的文档模板。
在具体实现中,当银行人员需要通过freemarker编写业务文档时,将启动freemarker。在freemarker中接收用户输入的模板获取指令,从所述模板获取指令中提取当前业务场景,通过freemarker调用web服务器存储的预设文档模板,在所述预设文档模板中选取与所述当前业务场景对应的目标文档模板。
在第二实施例中,采集各业务场景的业务文档信息;根据所述业务文档信息生成doc格式的第一初级模板;将所述第一初级模板转化为XML格式的第二初级模板;将所述第二初级模板转化为ftl格式的预设文档模板,并将所述预设文档模板保存到服务器。通过Word编写doc格式的文档模板,再将doc格式的文档模板转化为ftl格式的文档模板,当将各业务场景的第一初级模板进行格式转化之后,即获取了全部业务场景下的ftl格式的预设文档模板,完成了文档模板制作过程,并提高了文档模板制作的普适性,减少了编程过程,方便用户操作。
参照图4,图4为本发明基于模板的文档生成方法第三实施例的流程示意图,基于上述图3所示的第二实施例,提出本发明基于模板的文档生成方法的第三实施例。
在第三实施例中,所述步骤S20包括:
接收用户输入的配置文件,从所述配置文件中顺序提取所述目标变量。
在所述目标文档模板中定位所述目标变量对应的目标占位符。
可以理解的是,所述配置文件为包含目标变量的文件,所述目标变量为基于目标文档模板的待填写内容,在所述配置文件中,所述目标变量按预设顺序排列,而所述目标占位符代表所述目标变量在所述目标文档模板中对应的位置。
在具体实现中,配置文件可以是文本文件,例如a.txt,a.txt的内容为12 23 3445 65……,“12 23 34 45 65”这些数据都是目标变量。配置文件可以由用户编写或输入数据,编写或输入数据到配置文件的过程较为简单,适合一般的银行工作人员进行操作,用户编写或输入数据到配置文件后,程序可从配置文件中提取目标变量并自动将目标变量定位到对应的目标占位符。
在第三实施例中,所述在所述目标文档模板中定位所述目标变量对应的目标占位符,包括:
获取所述目标文档模板中的目标占位符与所述目标占位符的顺序;
根据所述目标占位符的顺序与所述目标变量的预设顺序将目标变量与目标占位符进行关联;
在所述目标文档模板中定位所述目标变量对应的目标占位符。
需要说明的是,在所述目标文档模板中,具有若干个通过目标占位符显示的变量部分,所述目标占位符的顺序与目标变量的顺序相对应。
在第三实施例中,所述步骤S40包括:
步骤S401:若一致,将所述目标变量插值至对应的目标占位符处,生成目标HTML页面。
可以理解的是,所述目标变量为基于目标文档模板的待填写内容,在所述配置文件中,所述目标变量按预设顺序排列;而所述目标占位符在所述目标文档模板中代表所述目标变量;所述目标变量和所述目标占位符之间具有顺序对应关系,按照顺序将所述目标变量插值至对应的目标占位符处,生成目标HTML页面。
步骤S402:将所述目标HTML页面转化为doc格式的目标业务文档。
需要说明的是,在获取到所述目标变量以及目标变量对应的目标占位符之后,将所述目标变量替换对应的目标占位符,当全部的目标变量替换完成时,即可生成目标HTML页面,并将所述目标HTML页面转化为doc格式的目标业务文档。
可以理解的是,所有的目标占位符如果没有全部填充目标变量,freemarker将不能解析出所述目标业务文档,后台会报错。因此,为了提高插值过程的准确度,在将所述目标变量插值至所述目标占位符处之前,所述方法还包括:判断所述目标变量与所述目标占位符的数量是否一致,在所述目标变量与所述目标占位符的数量一致时,执行所述将所述目标变量插值至所述目标占位符处的步骤,通过该判断步骤能够保证插值过程的顺利实施,减少失误。
在具体实现中,根据替换后的目标文档模板生成doc格式的目标业务文档的实现过程为,替换后的所述目标文档模板为FTL文件,将该FTL文件复制到工具包下,创建导出工具类用于导出word,创建导出工具类的代码具体为:
package com.yh.common.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;import java.util.HashMap;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.Template;
public class WordGenerator{
private static Configuration configuration=null;private static Map<String,Template>allTemplates=null;
static{
configuration=new Configuration();
configuration.setDefaultEncoding("utf-8");
configuration.setClassForTemplateLoading(WordGenerator.class,
"/com/yh/common/util");allTemplates=new HashMap<>();//Java 7钻石
语法
try{
allTemplates.put("resume",configuration.getTemplate("resume.ftl"));}catch
(IOException e){e.printStackTrace();throw new RuntimeException(e);}}
private WordGenerator(){throw new AssertionError();}
public static File createDoc(Map<?,?>dataMap,String type){
String name="temp"+(int)(Math.random()*100000)+".doc";
File f=new File(name);
Template t=allTemplates.get(type);
try{
//这个地方不能使用FileWriter因为需要指定编码类型否则生成的Word
文档会因为有无法识别的编码而无法打开
Writer w=new OutputStreamWriter(new FileOutputStream(f),"utf-8");
t.process(dataMap,w);
w.close();}catch(Exception ex){ex.printStackTrace();throw new
RuntimeException(ex);}
return f;}}
创建导出工具类之后,创建控制层,然后页面调用一个同步方法,到控制层即可导出doc文件。
在第三实施例中,若一致,利用freemarker模板引擎将所述目标文档模板中的所述目标占位符替换为对应的目标变量,根据替换后的目标文档模板生成doc格式的目标业务文档,方便的实现了基于模板的目标业务文档生成,且确保所述目标变量与所述目标占位符的数量一致,使得插值过程实施顺利,减少失误,提高目标业务文档生成的准确率。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有基于模板的文档生成程序,所述基于模板的文档生成程序被处理器执行时实现如上文所述的基于模板的文档生成方法的步骤。
此外,参照图5,本发明实施例还提出一种基于模板的文档生成装置,所述基于模板的文档生成装置包括:提取模块10、定位模块20、判断模块30与插值模块40;
所述提取模块10,用于根据用户输入的模板获取指令从服务器中提取目标文档模板;
所述定位模块20,用于获取目标变量,并在所述目标文档模板中定位所述目标变量对应的目标占位符;
所述判断模块30,用于判断所述目标变量与所述目标占位符的数量是否一致;
所述插值模块40,用于若一致,将所述目标变量插值至所述目标文档模板中对应的目标占位符处,以生成目标业务文档。
在一实施例中,所述基于模板的文档生成装置还包括:生成模块,用于采集业务场景的业务文档信息;
根据所述业务文档信息生成预设文档模板,并将所述预设文档模板保存到服务器。
在一实施例中,所述生成模块,还用于根据所述业务文档信息生成doc格式的第一初级模板;
将所述第一初级模板转化为XML格式的第二初级模板;
将所述第二初级模板转化为ftl格式的预设文档模板,并将所述预设文档模板保存到服务器。
在一实施例中,所述提取模块10,还用于从用户输入的模板获取指令中提取当前业务场景;
从所述服务器存储的预设文档模板中查找并获取所述当前业务场景对应的目标文档模板。
在一实施例中,所述定位模块20,还用于接收用户输入的配置文件,从所述配置文件中顺序提取所述目标变量;
在所述目标文档模板中定位所述目标变量对应的目标占位符。
在一实施例中,所述定位模块20,还用于获取所述目标文档模板中的目标占位符与所述目标占位符的顺序;
根据所述目标占位符的顺序与所述目标变量的预设顺序将目标变量与目标占位符进行关联;
在所述目标文档模板中定位所述目标变量对应的目标占位符。
在一实施例中,所述插值模块40,还用于若一致,将所述目标变量插值至对应的目标占位符处,生成目标HTML页面;
将所述目标HTML页面转化为doc格式的目标业务文档。
本发明所述基于模板的文档生成装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为名称。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器镜像(Read Only Memory image,ROM)/随机存取存储器(Random AccessMemory,RAM)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种基于模板的文档生成方法,其特征在于,所述基于模板的文档生成方法包括以下步骤:
根据用户输入的模板获取指令从服务器中提取目标文档模板;
获取目标变量,并在所述目标文档模板中定位所述目标变量对应的目标占位符;
判断所述目标变量与所述目标占位符的数量是否一致;
若一致,将所述目标变量插值至所述目标文档模板中对应的目标占位符处,以生成目标业务文档。
2.如权利要求1所述的基于模板的文档生成方法,其特征在于,所述根据用户输入的模板获取指令从服务器中提取目标文档模板之前,所述基于模板的文档生成方法还包括:
采集业务场景的业务文档信息;
根据所述业务文档信息生成预设文档模板,并将所述预设文档模板保存到服务器。
3.如权利要求2所述的基于模板的文档生成方法,其特征在于,所述根据所述业务文档信息生成预设文档模板,并将所述预设文档模板保存到服务器,包括:
根据所述业务文档信息生成doc格式的第一初级模板;
将所述第一初级模板转化为XML格式的第二初级模板;
将所述第二初级模板转化为ftl格式的预设文档模板,并将所述预设文档模板保存到服务器。
4.如权利要求3所述的基于模板的文档生成方法,其特征在于,所述根据用户输入的模板获取指令从服务器中提取目标文档模板,包括:
从用户输入的模板获取指令中提取当前业务场景;
从所述服务器存储的预设文档模板中查找并获取所述当前业务场景对应的目标文档模板。
5.如权利要求1-4中任一项所述的基于模板的文档生成方法,其特征在于,所述获取目标变量,并在所述目标文档模板中定位所述目标变量对应的目标占位符,包括:
接收用户输入的配置文件,从所述配置文件中顺序提取所述目标变量;
在所述目标文档模板中定位所述目标变量对应的目标占位符。
6.如权利要求5所述的基于模板的文档生成方法,其特征在于,所述在所述目标文档模板中定位所述目标变量对应的目标占位符,包括:
获取所述目标文档模板中的目标占位符与所述目标占位符的顺序;
根据所述目标占位符的顺序与所述目标变量的预设顺序将目标变量与目标占位符进行关联;
在所述目标文档模板中定位所述目标变量对应的目标占位符。
7.如权利要求6所述的基于模板的文档生成方法,其特征在于,所述若一致,将所述目标变量插值至所述目标文档模板中对应的目标占位符处,以生成目标业务文档,包括:
若一致,将所述目标变量插值至对应的目标占位符处,生成目标HTML页面;
将所述目标HTML页面转化为doc格式的目标业务文档。
8.一种基于模板的文档生成设备,其特征在于,所述基于模板的文档生成设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于模板的文档生成程序,所述基于模板的文档生成程序被所述处理器执行时实现如权利要求1至7中任一项所述的基于模板的文档生成方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有基于模板的文档生成程序,所述基于模板的文档生成程序被处理器执行时实现如权利要求1至7中任一项所述的基于模板的文档生成方法的步骤。
10.一种基于模板的文档生成装置,其特征在于,所述基于模板的文档生成装置包括:提取模块、定位模块、判断模块和插值模块;
所述提取模块,用于根据用户输入的模板获取指令从服务器中提取目标文档模板;
所述定位模块,用于获取目标变量,并在所述目标文档模板中定位所述目标变量对应的目标占位符;
所述判断模块,用于判断所述目标变量与所述目标占位符的数量是否一致;
所述插值模块,用于若一致,将所述目标变量插值至所述目标文档模板中对应的目标占位符处,以生成目标业务文档。
CN201811135646.5A 2018-09-27 2018-09-27 基于模板的文档生成方法、设备、存储介质及装置 Pending CN109657215A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811135646.5A CN109657215A (zh) 2018-09-27 2018-09-27 基于模板的文档生成方法、设备、存储介质及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811135646.5A CN109657215A (zh) 2018-09-27 2018-09-27 基于模板的文档生成方法、设备、存储介质及装置

Publications (1)

Publication Number Publication Date
CN109657215A true CN109657215A (zh) 2019-04-19

Family

ID=66110272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811135646.5A Pending CN109657215A (zh) 2018-09-27 2018-09-27 基于模板的文档生成方法、设备、存储介质及装置

Country Status (1)

Country Link
CN (1) CN109657215A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110378795A (zh) * 2019-06-17 2019-10-25 中国平安人寿保险股份有限公司 一种条款文件的生成方法、装置、存储介质和服务器
CN110968996A (zh) * 2019-11-13 2020-04-07 安徽东方智云科技有限公司 一种文档制作方法、装置、设备以及存储介质
CN111274799A (zh) * 2020-01-09 2020-06-12 天津车之家数据信息技术有限公司 一种文章标题生成方法、装置及存储介质
CN111737953A (zh) * 2020-06-04 2020-10-02 国网天津市电力公司电力科学研究院 一种易于二次开发的报告文档自动化方法
CN113515926A (zh) * 2021-09-14 2021-10-19 南京国睿信维软件有限公司 基于Office Word的插件开发系统模型信息自动化文档发布方法
CN113760826A (zh) * 2021-09-28 2021-12-07 浙江艾凯普计算机系统服务有限公司 一种电子元器件实验室报告生成方法及检测装置
CN113935304A (zh) * 2021-10-25 2022-01-14 北京房多多信息技术有限公司 一种讲房文案生成方法、装置、电子设备及存储介质
CN114372445A (zh) * 2022-03-21 2022-04-19 奇安信科技集团股份有限公司 文档生成方法、装置、电子设备及介质
CN115293123A (zh) * 2022-07-19 2022-11-04 盐城金堤科技有限公司 文档模板生成方法、报告在线生成方法及装置
CN115391439A (zh) * 2022-08-24 2022-11-25 中化现代农业有限公司 文档数据导出方法、装置、电子设备和存储介质
CN116226053A (zh) * 2023-05-05 2023-06-06 中国民航信息网络股份有限公司 一种文本处理方法、装置及设备
WO2023115833A1 (zh) * 2021-12-24 2023-06-29 永中软件股份有限公司 一种流式文档的生成方法、计算装置以及计算机可读介质
CN116956846A (zh) * 2023-07-25 2023-10-27 北京字跳网络技术有限公司 信息处理方法、装置、电子设备和存储介质
CN117076410A (zh) * 2023-10-16 2023-11-17 江苏人加信息科技有限公司 一种pdf文件生成方法、处理方法、装置及存储介质

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110378795A (zh) * 2019-06-17 2019-10-25 中国平安人寿保险股份有限公司 一种条款文件的生成方法、装置、存储介质和服务器
CN110378795B (zh) * 2019-06-17 2024-03-15 中国平安人寿保险股份有限公司 一种条款文件的生成方法、装置、存储介质和服务器
CN110968996A (zh) * 2019-11-13 2020-04-07 安徽东方智云科技有限公司 一种文档制作方法、装置、设备以及存储介质
CN110968996B (zh) * 2019-11-13 2024-04-26 安徽东方智云科技有限公司 一种文档制作方法、装置、设备以及存储介质
CN111274799A (zh) * 2020-01-09 2020-06-12 天津车之家数据信息技术有限公司 一种文章标题生成方法、装置及存储介质
CN111274799B (zh) * 2020-01-09 2023-06-23 天津车之家数据信息技术有限公司 一种文章标题生成方法、装置及存储介质
CN111737953A (zh) * 2020-06-04 2020-10-02 国网天津市电力公司电力科学研究院 一种易于二次开发的报告文档自动化方法
CN113515926A (zh) * 2021-09-14 2021-10-19 南京国睿信维软件有限公司 基于Office Word的插件开发系统模型信息自动化文档发布方法
CN113760826A (zh) * 2021-09-28 2021-12-07 浙江艾凯普计算机系统服务有限公司 一种电子元器件实验室报告生成方法及检测装置
CN113935304A (zh) * 2021-10-25 2022-01-14 北京房多多信息技术有限公司 一种讲房文案生成方法、装置、电子设备及存储介质
WO2023115833A1 (zh) * 2021-12-24 2023-06-29 永中软件股份有限公司 一种流式文档的生成方法、计算装置以及计算机可读介质
CN114372445B (zh) * 2022-03-21 2022-08-12 奇安信科技集团股份有限公司 文档生成方法、装置、电子设备及介质
CN114372445A (zh) * 2022-03-21 2022-04-19 奇安信科技集团股份有限公司 文档生成方法、装置、电子设备及介质
CN115293123A (zh) * 2022-07-19 2022-11-04 盐城金堤科技有限公司 文档模板生成方法、报告在线生成方法及装置
CN115391439A (zh) * 2022-08-24 2022-11-25 中化现代农业有限公司 文档数据导出方法、装置、电子设备和存储介质
CN116226053B (zh) * 2023-05-05 2024-03-22 中国民航信息网络股份有限公司 一种文本处理方法、装置及设备
CN116226053A (zh) * 2023-05-05 2023-06-06 中国民航信息网络股份有限公司 一种文本处理方法、装置及设备
CN116956846A (zh) * 2023-07-25 2023-10-27 北京字跳网络技术有限公司 信息处理方法、装置、电子设备和存储介质
CN117076410A (zh) * 2023-10-16 2023-11-17 江苏人加信息科技有限公司 一种pdf文件生成方法、处理方法、装置及存储介质
CN117076410B (zh) * 2023-10-16 2024-01-26 江苏人加信息科技有限公司 一种pdf文件生成方法、处理方法、装置及存储介质

Similar Documents

Publication Publication Date Title
CN109657215A (zh) 基于模板的文档生成方法、设备、存储介质及装置
CN106155686B (zh) 界面生成方法、装置和系统
CN105607897B (zh) 芯片寄存器代码自动生成方法及其系统
CN101661512B (zh) 一种识别传统表单信息并创建对应Web表单的系统及方法
CN106874244B (zh) 一种基于工作序列的文档自动生成模型的构建方法
CN104317589B (zh) 一种用于加载动态链接库的代码自动生成方法及装置
CN107886439A (zh) 保险产品开发方法、装置、设备及计算机可读存储介质
CN110349038A (zh) 风险评估模型训练方法和风险评估方法
CN110286974A (zh) 基于h5页面的应用配置方法、装置、设备及存储介质
CN109445842A (zh) 规则生成方法、装置、计算机设备和存储介质
CN106776515A (zh) 数据处理的方法及装置
CN106372044B (zh) 一种基于报表生成类型化维度xbrl报告的方法
CN107273117A (zh) 一种编程友好型的敏捷代码自动生成系统
CN110991157A (zh) 基于电子文件可信技术的工程质量评定系统设计方法
CN104267966B (zh) 软件的程序代码的生成方法及装置
CN101149737A (zh) 通过Microsoft Word快速建立web表单及自动在数据库中建立对应数据表的方法
CN109710933A (zh) 训练语料的获取方法、装置、计算机设备和存储介质
CN111581210A (zh) 数据的导入方法及系统
CN113609820A (zh) 基于可扩展标记语言文件生成word文件的方法、装置及设备
CN110309099A (zh) 接口管理方法、装置、设备及计算机可读存储介质
CN109597979A (zh) 清单表格生成方法、装置、计算机设备和存储介质
CN109086433A (zh) 一种基于大数据分析的文件管理方法及服务器
CN111667231B (zh) 自动化报税方法、装置、系统、计算机设备和存储介质
CN110286903A (zh) 用户信息表单的构建方法、装置、设备及存储介质
CN102520953B (zh) 基于bpmn的页面生成方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination