CN111950247A - 一种基于配置的Word文档生成方法 - Google Patents
一种基于配置的Word文档生成方法 Download PDFInfo
- Publication number
- CN111950247A CN111950247A CN202010650612.0A CN202010650612A CN111950247A CN 111950247 A CN111950247 A CN 111950247A CN 202010650612 A CN202010650612 A CN 202010650612A CN 111950247 A CN111950247 A CN 111950247A
- Authority
- CN
- China
- Prior art keywords
- document
- configuration
- replacement
- file
- word
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 11
- 230000006835 compression Effects 0.000 claims description 2
- 238000007906 compression Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000006837 decompression Effects 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
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
本发明提出一种基于配置的Word文档生成方法,包括:建立Word模板文档步骤;定位目标对象步骤,解压缩所述Word模板文档,并提取所述Word模板文档的XML文件以定位待操作的XML目标对象;建立配置文件步骤,所述配置文件用于标记所述目标对象、替换类型及其替换内容;生成Word文档步骤,根据配置文件对文档中的目标对象进行替换操作后生成配置后的Word文档,所述替换操作还包括:循环替换操作、条件替换操作。采用上述方案的Word文档生成方法,实现对Word文档中内容、图片文件的替换、循环替换及条件替换,保证文档结构和样式不被篡改,提高格式文档生成效率。
Description
技术领域
本发明属于文档处理技术领域,尤其涉及一种基于配置的Word文档生成方法。
背景技术
Word文档是现有的一些office***,Word2007之后大家都使用*.docx,*.docx是基于新的XML压缩文件格式,其解压后,在word下的文件夹或XML文件中保存word文档的主要内容。
在政府或企业***内部中,由于法制检查的要求常常需要将文档打印出来,找到相关负责人签字和盖章,有时需要重新扫描留存。
现有技术中,常常通过POI、jacob、java2word等技术手段操作word文档,通过在word文档里直接添加${name}格式的显式参数来填充数据实现文档修改,但如此一来,整个word模板会不纯净,而且该显式参数万一被篡改,会导致填充数据功能不可用;同时这样的操作方式对存在循环和条件需求的操作支持较少。
发明内容
为解决上述的技术问题,本发明提出一种基于配置的Word文档生成方法,实现Word文档中内容、图片文件的替换、循环替换及条件替换,保证文档结构和样式不被篡改,提高格式文档生成效率。
本发明公开了一种基于配置的Word文档生成方法,包括:
建立Word模板文档步骤S1,根据所需格式文档建立一Word模板文档;
定位目标对象步骤S2,解压缩所述Word模板文档,并提取所述Word模板文档的XML文件以定位待操作的XML目标对象;
建立配置文件步骤S3,所述配置文件用于标记所述目标对象、替换类型及其替换内容,以保证文档结构和样式不被篡改;
生成Word文档步骤S4,根据配置文件对文档中的目标对象进行替换操作后生成配置后的Word文档,为了实现对Word文档中的段落内容根据条件进行替换或对文档中表格的多行数据需要循环操作的对象进行多次替换,所述替换操作还包括:循环替换操作、条件替换操作。
进一步,所述目标对象为目标文件或目标节点,具体的,为所述目标对象的节点路径或文件名,所述目标文件包括但不限于图片文件,所述目标节点包括但不限于文本内容节点、表格节点,所述替换内容包括变量名表达式;。
进一步,所述生成Word文档步骤进一步包括:
替换目标文件步骤,解析所述配置文件获取目标文件对应变量名表达式,并获取配置参数中对应变量名的值以替换所述变量名表达式,得到配置后的XML文件;
替换目标节点步骤,解析所述配置文件的目标节点及对应变量名表达式后,通过将所述目标节点替换为变量名表达式生成一Freemarker模板,同时获取配置参数中对应变量名的值,经过Freemarker渲染后得到配置后的XML文件;
Word文档生成步骤,获取配置后的XML文件,并将配置后的XML文件通过压缩方式生成配置后的Word文档,
其中,采用对于替换目标节点步骤的情况,通过生成Freemarker模板将Word模板化,可以通过Freemarker模板将文档内的动态内容,即所述目标节点,用变量名表达式代替,用配置参数替换变量名表达式即可完成文档的生成,减少文档操作耗时,相较于直接在Word中添加变量名表达式,降低出错率。
进一步,所述循环替换操作通过***循环标签<#list></#list>包围所述目标节点实现循环替换。
进一步,所述条件替换操作通过***条件标签<#if></#if>包围所述目标节点实现条件替换。
进一步,所述替换类型进一步包括:内容替换、文件替换、条件替换、循环替换其一或其任意组合。
进一步,所述定位目标对象步骤通过一XML文件编辑软件定位所述目标对象。
进一步,所述XML文件编辑软件为XMLQuire。
进一步,所述配置文件通过一Excel表格存储。
进一步,所述配置参数的数据结构为JSON类型。
与现有技术相比,本发明的优点和积极效果在于:
本发明的Word文档生成方法可以支持循环、条件语句,适用于多种应用场景,有效提高格式文档的生成效率;
本发明将固定模板文件结合配置参数和收集到的签名和公章文件即可生成所需要的的文档,直接打印即可,节省人工成本,提高工作效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的Word文档生成方法的流程示意图;
图2为本发明实施例Word模板文档解压后的结构示意图;
图3为本发明实施例配置文件优选实施方式示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。
图1为本发明实施例的Word文档生成方法的流程示意图,参考图1所示,本发明实施例公开了一种基于配置的Word文档生成方法,包括:
建立Word模板文档步骤S1,根据所需格式文档建立一Word模板文档;
定位目标对象步骤S2,解压缩Word模板文档,并提取Word模板文档的XML文件以定位目标对象定位待操作的XML目标对象;
建立配置文件步骤S3,配置文件用于标记目标对象、替换类型及其替换内容,利用Excel表格进行存储,其中,目标对象为目标文件或目标节点,所述目标文件包括但不限于图片文件,所述目标节点包括但不限于文本内容节点、表格节点,具体的,通过获取目标节点的节点路径或文件名得到该目标对象,替换内容包括变量名表达式,替换类型包括内容替换、文件替换、条件替换、循环替换其一或其任意组合,在应用过程中,可根据格式文档需求选择替换类型;
生成Word文档步骤S4,根据配置文件对文档中的目标对象进行替换操作后生成配置后的Word文档,为了实现对Word文档中的内容根据条件进行替换或对文档中需要循环操作的对象进行多次替换,替换操作还包括:循环替换操作、条件替换操作,循环替换操作通过***循环标签<#list></#list>包围目标节点实现;条件替换操作通过***条件标签<#if></#if>包围目标节点。
其中,生成Word文档步骤S4进一步包括:
替换目标文件步骤S41,解析配置文件获取目标文件对应变量名表达式,并获取配置参数中对应变量名的值以替换变量名表达式,得到配置后的XML文件;
替换目标节点步骤S42,解析配置文件的目标节点及对应变量名表达式后,通过将目标节点替换为变量名表达式生成一Freemarker模板,同时获取配置参数中对应变量名的值,经过Freemarker渲染后得到配置后的XML文件;
Word文档生成步骤S43,获取配置后的XML文件,并将配置后的XML文件通过压缩方式生成配置后的Word文档。
举一例说明本实施例的Word文档生成方法。
建立Word模板文档步骤S1,根据所需格式文档建立一Word模板文档,该Word模板文档的格式为docx;
定位目标对象步骤S2,参考图2所示的Word模板文档解压后的结构示意图可知,解压缩docx文档后其Word文件目录下,media文件夹用于存放文档内的图片等文件,document.xml文件存放Word主要内容,若待操作的XML目标对象为图片可通过路径定位,若待操作XML对象为document.xml的内容,则通过XMLQuire搜索内容进行定位,得到目标对象的路径表达式;
建立配置文件步骤S3,参考图3所示的配置文件示意图一实施方式,其中,目标对象的列用于存放路径表达式,路径表达式为document..xml中的XPath或Word文件夹下图片文件的存储路径,替换类型为内容替换CONTENT、循环替换WRAP_LOOP、条件替换WRAP_IF或图片替换MEDIA,替换内容根据目标对象不同分别规定,内容替换或图片替换类型的替换内容采用变量名表达式${变量名},如${user.username}、${user.image},条件替换类型或循环替换类型的替换内容为对应标签语句;
生成Word文档步骤S4,程序解析配置文件,执行配置文件中目标对象对应的替换操作:
替换目标文件步骤S41,主要用于对图片文件的替换,通过程序解析配置文件获取目标文件对应变量名表达式,如${user.image},并获取配置参数中对应变量名的值以替换变量名表达式,得到配置后的XML文件;
替换目标节点步骤S42,主要用于对Word文档document.xml文件中内容的替换,首先解析配置文件的目标节点及对应变量名表达式后,通过将目标节点替换为变量名表达式生成一Freemarker模板:同时获取配置参数中对应变量名的值,经过Freemarker渲染后结合对应数据即可生成配置后的XML文件;
Word文档生成步骤S43,获取配置后的XML文件,并将配置后的XML文件通过压缩方式生成配置后的Word文档。
步骤S42中,对于内容替换CONTENT类型,将XPATH下的内容替换为${user.username}、${user.image}更新至XML文件内容对应的节点,如“/w:document/w:body/w:tbl/w:tr[2]/w:tc[2]”,对于条件内容条件替换,用<#if></#if>包围该内容所在的节点,如“/w:document/w:body/w:tbl/w:tr[2]/w:tc[2]”,对于列表需要循环替换,用<#list></#list>包围所需要替换的节点,如/w:document/w:body/w:tbl/w:tr[2],值得注意的是,在***标签时,可先***注释标签<!---->,如通过下述语句:<!--<#list userListas user>-->将循环替换标签进行注释,只需在freemarker渲染前删掉该注释标签即可,通过注释标签保护XML文件,以免编辑过程破坏XML语法结构。
本实施例的配置参数的数据结构为JSON类型,举例如下:
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其它领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
Claims (10)
1.一种基于配置的Word文档生成方法,其特征在于,包括:
建立Word模板文档步骤,根据所需格式文档建立一Word模板文档;
定位目标对象步骤,解压缩所述Word模板文档,并提取所述Word模板文档的XML文件以定位待操作的XML目标对象;
建立配置文件步骤,所述配置文件用于标记所述目标对象、替换类型及其替换内容;
生成Word文档步骤,根据所述配置文件对文档中的目标对象进行替换操作后生成配置后的Word文档,所述替换操作还包括:循环替换操作、条件替换操作。
2.如权利要求1所述的基于配置的Word文档生成方法,其特征在于,所述目标对象为目标文件或目标节点,所述替换内容包括变量名表达式。
3.如权利要求2所述的基于配置的Word文档生成方法,其特征在于,所述生成Word文档步骤进一步包括:
替换目标文件步骤,解析所述配置文件获取目标文件对应变量名表达式,并获取配置参数中对应变量名的值以替换所述变量名表达式,得到配置后的XML文件;
替换目标节点步骤,解析所述配置文件的目标节点及对应变量名表达式后,通过将所述目标节点替换为变量名表达式生成一Freemarker模板,同时获取配置参数中对应变量名的值,经过Freemarker渲染后得到配置后的XML文件;
Word文档生成步骤,获取配置后的XML文件,并将配置后的XML文件通过压缩方式生成配置后的Word文档。
4.如权利要求1或3所述的基于配置的Word文档生成方法,其特征在于,所述循环替换操作通过***循环标签<#list></#list>包围所述目标节点实现循环替换。
5.如权利要求4所述的基于配置的Word文档生成方法,其特征在于,所述条件替换操作通过***条件标签<#if></#if>包围所述目标节点实现条件替换。
6.如权利要求5所述的基于配置的Word文档生成方法,其特征在于,所述替换类型进一步包括:内容替换、文件替换、条件替换、循环替换其一或其任意组合。
7.如权利要求6所述的基于配置的Word文档生成方法,其特征在于,所述定位目标对象步骤通过一XML文件编辑软件定位所述目标对象。
8.如权利要求7所述的基于配置的Word文档生成方法,其特征在于,所述XML文件编辑软件为XMLQuire。
9.如权利要求1中任一项所述的基于配置的Word文档生成方法,其特征在于,所述配置文件通过一Excel表格存储。
10.如权利要求3所述的基于配置的Word文档生成方法,其特征在于,所述配置参数的数据结构为JSON类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010650612.0A CN111950247A (zh) | 2020-07-08 | 2020-07-08 | 一种基于配置的Word文档生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010650612.0A CN111950247A (zh) | 2020-07-08 | 2020-07-08 | 一种基于配置的Word文档生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111950247A true CN111950247A (zh) | 2020-11-17 |
Family
ID=73341422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010650612.0A Pending CN111950247A (zh) | 2020-07-08 | 2020-07-08 | 一种基于配置的Word文档生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111950247A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765948A (zh) * | 2020-12-31 | 2021-05-07 | 山西三友和智慧信息技术股份有限公司 | 一种文档生成编辑方法 |
CN113011151A (zh) * | 2021-04-20 | 2021-06-22 | 平安科技(深圳)有限公司 | 需求文档模板的生成方法、装置、设备及存储介质 |
CN113378535A (zh) * | 2021-06-23 | 2021-09-10 | 浪潮软件科技有限公司 | 一种基于freemarker生成docx格式文档的方法及*** |
CN115062252A (zh) * | 2022-06-15 | 2022-09-16 | 江苏未至科技股份有限公司 | 一种解决网页生成文件在WPS和Word打开时格式冲突的方法 |
WO2023115833A1 (zh) * | 2021-12-24 | 2023-06-29 | 永中软件股份有限公司 | 一种流式文档的生成方法、计算装置以及计算机可读介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101989256A (zh) * | 2009-07-31 | 2011-03-23 | 北京大学 | 一种文书文件的排版方法及装置 |
CN103559322A (zh) * | 2013-11-22 | 2014-02-05 | 方正国际软件有限公司 | 文档格式转换方法 |
WO2016015564A1 (zh) * | 2014-07-31 | 2016-02-04 | 广州金山网络科技有限公司 | 一种文档显示方法以及装置 |
CN106874244A (zh) * | 2017-01-03 | 2017-06-20 | 宁波大红鹰学院 | 一种基于工作序列的文档自动生成模型的构建方法 |
CN108052488A (zh) * | 2017-12-06 | 2018-05-18 | 广东技术师范学院天河学院 | 一种基于模板的论文自动生成方法 |
CN111159995A (zh) * | 2020-01-16 | 2020-05-15 | 江西金格科技股份有限公司 | 一种模板化生成word文档的方法 |
-
2020
- 2020-07-08 CN CN202010650612.0A patent/CN111950247A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101989256A (zh) * | 2009-07-31 | 2011-03-23 | 北京大学 | 一种文书文件的排版方法及装置 |
CN103559322A (zh) * | 2013-11-22 | 2014-02-05 | 方正国际软件有限公司 | 文档格式转换方法 |
WO2016015564A1 (zh) * | 2014-07-31 | 2016-02-04 | 广州金山网络科技有限公司 | 一种文档显示方法以及装置 |
CN106874244A (zh) * | 2017-01-03 | 2017-06-20 | 宁波大红鹰学院 | 一种基于工作序列的文档自动生成模型的构建方法 |
CN108052488A (zh) * | 2017-12-06 | 2018-05-18 | 广东技术师范学院天河学院 | 一种基于模板的论文自动生成方法 |
CN111159995A (zh) * | 2020-01-16 | 2020-05-15 | 江西金格科技股份有限公司 | 一种模板化生成word文档的方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765948A (zh) * | 2020-12-31 | 2021-05-07 | 山西三友和智慧信息技术股份有限公司 | 一种文档生成编辑方法 |
CN112765948B (zh) * | 2020-12-31 | 2024-01-19 | 山西三友和智慧信息技术股份有限公司 | 一种文档生成编辑方法 |
CN113011151A (zh) * | 2021-04-20 | 2021-06-22 | 平安科技(深圳)有限公司 | 需求文档模板的生成方法、装置、设备及存储介质 |
CN113011151B (zh) * | 2021-04-20 | 2022-03-18 | 平安科技(深圳)有限公司 | 需求文档模板的生成方法、装置、设备及存储介质 |
CN113378535A (zh) * | 2021-06-23 | 2021-09-10 | 浪潮软件科技有限公司 | 一种基于freemarker生成docx格式文档的方法及*** |
WO2023115833A1 (zh) * | 2021-12-24 | 2023-06-29 | 永中软件股份有限公司 | 一种流式文档的生成方法、计算装置以及计算机可读介质 |
CN115062252A (zh) * | 2022-06-15 | 2022-09-16 | 江苏未至科技股份有限公司 | 一种解决网页生成文件在WPS和Word打开时格式冲突的方法 |
CN115062252B (zh) * | 2022-06-15 | 2023-09-19 | 江苏未至科技股份有限公司 | 一种解决网页生成文件在WPS和Word打开时格式冲突的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111950247A (zh) | 一种基于配置的Word文档生成方法 | |
US7975215B2 (en) | Sharing editable ink annotated images with annotation-unaware applications | |
CN101271463B (zh) | 版式文件的结构处理方法和*** | |
JP2015529874A (ja) | 医用画像を閲覧するためのシステム及び方法 | |
CN113609820A (zh) | 基于可扩展标记语言文件生成word文件的方法、装置及设备 | |
CN106547782A (zh) | 日志信息的获取方法及装置 | |
WO2020015220A1 (zh) | 基于pdf文档的数据下载方法及装置、存储介质、终端 | |
CN113283228A (zh) | 文档生成方法、装置、电子设备及存储介质 | |
JP2004102926A (ja) | 識別子生成方法、同一性判定方法、識別子送信方法、識別子生成装置、同一性判定装置および識別子送信装置 | |
US8930808B2 (en) | Processing rich text data for storing as legacy data records in a data storage system | |
CN104820962A (zh) | 一种代替人工签名栏的打印水印生成方法 | |
CN102063415B (zh) | 向pdf文件内嵌单字节字体的方法及其*** | |
US20080189601A1 (en) | System and method for creating a compressed file | |
CN112433995A (zh) | 文件格式转换方法、***、计算机设备及存储介质 | |
CN109509467B (zh) | 代码生成方法及装置 | |
CN111679825A (zh) | 一种层叠样式表生成方法、装置、计算机设备及存储介质 | |
CN111241096A (zh) | 一种excel文档的文本提取方法、***、终端及存储介质 | |
CN101894098A (zh) | 一种内嵌字体数据处理方法及装置 | |
CN112069549B (zh) | 一种在Bootstrap-table插件导出表格时图片下载方法及*** | |
CN107391127A (zh) | 软件版本信息保存方法和*** | |
CN109948123B (zh) | 一种图像合并方法及装置 | |
CN102262784B (zh) | 基于图像压缩的字库编码方法和解码方法 | |
CN112818642B (zh) | 将pdf文件转换成表格文件的方法、装置及计算机设备及存储介质 | |
KR101165201B1 (ko) | 컨텐츠 제공 시스템의 변환서버 | |
JPWO2005101210A1 (ja) | データ解析装置およびデータ解析プログラム |
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 |