本发明涉及计算机应用技术领域,特别是一种基于源文件的word图文格式编排系统及其实现方法。
背景技术:
word文档编辑、排版工作是件即费时又费力且细致的工作,重复类似的文档开发工作需要花费较多人力资源及时间。常规的word文档编排通过定义参数变量进行range匹配替换或者转成xml格式匹配替换,在word版本通用性、图片处理及模板格式的完整保留等方面存在不足且解析替换操作复杂。这时候更需要一种灵活度高且适用范围广的方法,可以快速响应业务需求,实现快速开发。
技术实现要素:
本发明解决的技术问题之一在于提供一种基于源文件的word图文格式编排系统,灵活地实现word文档的编辑、排版。
本发明解决的技术问题之二在于提供一种基于源文件的word图文格式编排系统的实现方法。
本发明解决上述技术问题之一的技术方案是:
所述的系统包括源文件解析器、动态数据组装器和文档编排器;
所述的源文件解析器,使用poi读取源文件获取文本格式标签、图片格式标签和示例片段,然后生成格式标签库;
所述的动态数据组装器,将动态数据中的图片流和文本数据按格式标签进行分组生成标签数据哈希图;
所述的文档编排器,复制源文件生成新文档,使用poi读取新文档格式匹配标签数据哈希图,将匹配成功的图片流和文本数据写入新文档对应位置,完成新文档编排。
所述的文本格式标签包括段落序号、表格序号、字体系列码、字号、颜色码和样式序号六种元素,其中样式序号是同一种样式在不同段落或序列的排序号。
所述的图片格式标签包括段落序号、表格序号、序列序号和图片序号四种元素。
本发明解决上述技术问题之二的技术方案是:
所述的方法具体步骤如下:
第一步,使用poi按段落读取源文件,获取段落下所有序列,遍历序列判断当前是文本序列还是图片序列;
第二步,针对文本序列获取格式包括字体系列码、字号和颜色码,判断和段落格式哈希图中上一个格式是否相同,如果不同则生成新格式并加入到段落格式哈希图,如果相同则将文本内容累加到段落格式哈希图对应的值中;针对图片序列根据段落序号、序列序号和图片序号生成图片格式标签;
第三步,使用poi按表格读取源文件,获取表格下所有单元格,遍历单元格获取所有序列,遍历序列判断当前是文本序列还是图片序列;
第四步,针对文本序列获取格式包括字体系列码、字号和颜色码,判断和表格格式哈希图中上一个格式是否相同,如果不同则生成新格式并加入到表格格式哈希图,如果相同则将文本内容累加到表格格式哈希图对应的值中;针对图片序列根据表格序号、序列序号和图片序号生成图片格式标签;
第五步,截取段落格式哈希图和表格格式哈希图中的文本值,生成示例片断;
第六步,汇总段落格式哈希图、表格格式哈希图和图片格式标签生成格式标签库;
第七步,根据格式标签库将动态数据中的图片流和文本数据进行分组,生成标签数据哈希图;
第八步,复制源文件生成新文档,使用poi按段落读取新文档,获取段落下所有序列,合并相同格式序列,匹配标签数据哈希图,将匹配成功的图片流和文本数据写入新文档对应位置;
第九步,使用poi按表格读取新文档,获取表格下所有单元格,遍历单元格获取所有序列,合并相同格式序列,匹配标签数据哈希图,将匹配成功的图片流和文本数据写入新文档对应位置,最终完成新文档编排。
所述的第一步与第二为一组;第三步与第四为一组;两组顺序可以互换。
本发明的有益效果是:
采用本发明的系统和方法不需要配置模板,组件自动解析源文件格式生成格式标签库,同一种文档只需分组配置一次便可通用,通过新文档格式标签和标签数据哈希图匹配,可以将图片流和文本数据写入新文档任意指定位置,完整保留了源格式。
附图说明
下面结合附图对本发明进一步说明:
图1是本发明的架构示意图。
具体实施方式
如图1所示,本发明的基于源文件的word图文格式编排组件由源文件解析器、动态数据组装器和文档编排器组成。
源文件解析器,使用poi读取源文件获取文本格式标签、图片格式标签和示例片段生成格式标签库;
文本格式标签包括段落序号、表格序号、字体系列码、字号、颜色码和样式序号六种元素,其中样式序号是同一种样式在不同段落或序列的排序号;图片格式标签包括段落序号、表格序号、序列序号和图片序号四种元素;
动态数据组装器,将动态数据中的图片流和文本数据按格式标签进行分组生成标签数据哈希图;
文档编排器,复制源文件生成新文档,使用poi读取新文档格式匹配标签数据哈希图,将匹配成功的图片流和文本数据写入新文档对应位置,最终完成新文档编排。
如图1所示,基于源文件的word图文格式编排组件的实现方法详细实施流程为:
第一步,使用poi按段落读取源文件,获取段落下所有序列,遍历序列判断当前是文本序列还是图片序列;
第二步,针对文本序列获取格式包括字体系列码、字号和颜色码,判断和段落格式哈希图中上一个格式是否相同,如果不同则生成新格式并加入到段落格式哈希图,如果相同则将文本内容累加到段落格式哈希图对应的值中;针对图片序列根据段落序号、序列序号和图片序号生成图片格式标签;
第三步,使用poi按表格读取源文件,获取表格下所有单元格,遍历单元格获取所有序列,遍历序列判断当前是文本序列还是图片序列;
第四步,针对文本序列获取格式包括字体系列码、字号和颜色码,判断和表格格式哈希图中上一个格式是否相同,如果不同则生成新格式并加入到表格格式哈希图,如果相同则将文本内容累加到表格格式哈希图对应的值中;针对图片序列根据表格序号、序列序号和图片序号生成图片格式标签;
第五步,截取段落格式哈希图和表格格式哈希图中的文本值,生成示例片断;
第六步,汇总段落格式哈希图、表格格式哈希图和图片格式标签生成格式标签库;
第七步,根据格式标签库将动态数据中的图片流和文本数据进行分组,生成标签数据哈希图;
第八步,复制源文件生成新文档,使用poi按段落读取新文档,获取段落下所有序列,合并相同格式序列,匹配标签数据哈希图,将匹配成功的图片流和文本数据写入新文档对应位置;
第九步,使用poi按表格读取新文档,获取表格下所有单元格,遍历单元格获取所有序列,合并相同格式序列,匹配标签数据哈希图,将匹配成功的图片流和文本数据写入新文档对应位置,最终完成新文档编排。
本发明使用poi读取源文件获取文本格式标签、图片格式标签和示例片段生成格式标签库,将图片流和文本数据按格式标签进行分组生成标签数据哈希图,复制源文件生成新文档,使用poi读取新文档格式匹配标签数据哈希图,将匹配成功的图片流和文本数据写入新文档对应位置,最终完成新文档编排。