基于文档结构语义的OFD文件修复方法及系统与流程

摘要: 本发明涉及数字文档处理,尤其涉及一种基于文档结构语义的ofd文件修复方法及系统。背景技术:1、开放版式文档(openfixed-layoutdocument,o...
基于文档结构语义的OFD文件修复方法及系统与流程

本发明涉及数字文档处理,尤其涉及一种基于文档结构语义的ofd文件修复方法及系统。

背景技术:

1、开放版式文档(open fixed-layout document,ofd)是我国自主制定的版式文档格式标准(gb/t 33190-2016),已成为电子发票、电子公文等领域的核心文件格式。ofd文件本质上是一个遵循特定规范的压缩包,其内部采用树状模块化结构,包含入口文件、页面目录及资源目录等核心部件。

2、现有技术中,针对ofd文件的损坏修复主要采用两种方式:一是从压缩包容器层面进行修复,通过扫描数据块或重建中央目录来恢复可解压性;二是从文档逻辑层面进行修复,通过补充缺失的逻辑结构来重建文件。然而,这两种方式相对独立,前者修复完成后若发现入口文件损坏则流程终止,后者又无法处理容器层的损坏问题,导致当压缩包容器层与文档逻辑层同时损坏时,缺乏有效的联动修复方案。

3、因此,现有方案在ofd文件修复中存在容器层修复与逻辑层修复脱节、难以应对双重损坏场景,导致修复成功率低、修复效率差的问题。

技术实现思路

1、本发明提供一种基于文档结构语义的ofd文件修复方法及系统,用以解决现有技术中ofd文件修复时容器层修复与逻辑层修复脱节、难以应对双重损坏场景,导致修复成功率低、修复效率差的问题。

2、本发明提供一种基于文档结构语义的ofd文件修复方法,该方法包括:获取待修复的ofd文件,ofd文件为至少包含入口文件、页面目录和资源目录的压缩包文件;对ofd文件进行容器层状态检测,获得可解压的中间文件,并对中间文件进行解压,建立文档结构树;根据文档结构树的解析结果判定损坏等级,执行与损坏等级对应的修复策略;将修复后的各部件重新打包,获得修复后的ofd文件。

3、根据本发明提供的一种基于文档结构语义的ofd文件修复方法,损坏等级包括入口文件损坏的一级损坏、页面目录中页面文件损坏的二级损坏、资源目录中的资源文件损坏的三级损坏以及文档元数据损坏的四级损坏。

4、根据本发明提供的一种基于文档结构语义的ofd文件修复方法,执行与损坏等级对应的修复策略,包括:当损坏等级为一级损坏时,遍历页面目录中各页面文件内的文本对象,从文本对象中反向提取关键业务元数据,基于页面目录中的页面结构信息和关键业务元数据重构入口文件;当损坏等级为二级损坏时,对损坏的页面文件进行页面替换或标记;当损坏等级为三级损坏时,对损坏的资源文件进行容错处理;当损坏等级为四级损坏时,对损坏的文档元数据进行推断补全或使用默认值填充。

5、根据本发明提供的一种基于文档结构语义的ofd文件修复方法,遍历页面目录中各页面文件内的文本对象,从文本对象中反向提取关键业务元数据,包括:遍历页面目录中所有可解析的页面文件,提取各页面文件内的文本对象;利用预置的关键词模板对各文本对象的文本内容进行匹配;从匹配成功的文本内容中提取关键业务元数据。

6、根据本发明提供的一种基于文档结构语义的ofd文件修复方法,该方法还包括:当同一关键业务元数据字段在多个页面文件中提取到不同取值时,按照预设的置信度评估规则对各候选取值进行置信度评估,得到置信度值;选取置信度值最高的候选取值作为关键业务元数据的最终取值。

7、根据本发明提供的一种基于文档结构语义的ofd文件修复方法,置信度评估规则包括以下评估维度:关键业务元数据字段在多个页面文件中提取结果的一致性比例、正则表达式匹配到的特征词完整度、及提取候选取值的页面在文档中的顺序权重。

8、根据本发明提供的一种基于文档结构语义的ofd文件修复方法,基于页面目录中的页面结构信息和关键业务元数据重构入口文件,包括:从页面目录中提取页面数量及各页面的标识信息;从资源目录中提取资源信息,资源信息至少包括字体文件列表和图片文件列表;获得按照ofd文件格式规范预先生成的入口文件模板;将页面数量、页面的标识信息、资源信息以及关键业务元数据填充至入口文件模板的对应位置,生成重构后的入口文件。

9、根据本发明提供的一种基于文档结构语义的ofd文件修复方法,获得可解压的中间文件,包括:当检测到ofd文件的压缩包容器层损坏时,扫描ofd文件数据流中的本地文件头;根据本地文件头重建压缩包中央目录,获得可解压的中间文件。

10、根据本发明提供的一种基于文档结构语义的ofd文件修复方法,获得可解压的中间文件,包括:当检测到ofd文件同时存在压缩包容器层损坏和入口文件损坏时,进行容器层修复以获得可解压的中间文件。

11、本发明还提供一种基于文档结构语义的ofd文件修复系统,包括:文件获取模块,用于获取待修复的ofd文件,ofd文件为至少包含入口文件、页面目录和资源目录的压缩包文件;文档结构解析模块,用于对ofd文件进行容器层状态检测,获得可解压的中间文件,并对中间文件进行解压,建立文档结构树;分级判定与修复模块,用于根据文档结构树的解析结果判定损坏等级,执行与损坏等级对应的修复策略;校验与打包模块,用于将修复后的各部件重新打包,获得修复后的ofd文件。

12、本发明还提供一种电子设备,包括处理器、存储器,存储器与处理器耦合,存储器中存储有程序指令或代码,程序指令或代码由处理器加载并执行,以使电子设备实现如上述任一项的基于文档结构语义的ofd文件修复方法。

13、本发明还提供一种计算机可读存储介质,计算机可读存储介质中存储有程序指令或代码,程序指令或代码由处理器加载并执行时,使处理器实现如上述任一项的基于文档结构语义的ofd文件修复方法。

14、本发明还提供一种计算机程序产品,包括计算机程序或指令,计算机程序或指令被处理器执行时实现如上述任一项的基于文档结构语义的ofd文件修复方法。

15、本发明提供的基于文档结构语义的ofd文件修复方法及系统,通过获取至少包含入口文件、页面目录和资源目录的压缩包格式的ofd文件,并在此基础上,对ofd文件进行容器层状态检测获得可解压的中间文件并解压建立文档结构树,将容器层修复与文档逻辑层解析衔接为统一的处理流程,使后续修复操作能够在完整的文档结构信息基础上进行,避免了容器层修复完成后因逻辑层损坏导致流程中断的问题;进而,根据文档结构树的解析结果判定损坏等级并执行对应的修复策略,能够针对不同损坏程度采取差异化的修复手段,在保证修复质量的同时避免了对完好部件的过度处理;最终将修复后的各部件重新打包获得修复后的ofd文件,形成从容器层到逻辑层再到重新打包的完整修复链路,从而实现了容器层修复与逻辑层修复的联动,使双重损坏场景下的文件修复成为可能,有效提高了ofd文件的修复成功率和修复效率。

1.一种基于文档结构语义的ofd文件修复方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述损坏等级包括所述入口文件损坏的一级损坏、所述页面目录中页面文件损坏的二级损坏、所述资源目录中的资源文件损坏的三级损坏以及文档元数据损坏的四级损坏。

3.根据权利要求2所述的方法,其特征在于,所述执行与所述损坏等级对应的修复策略,包括:

4.根据权利要求3所述的方法,其特征在于,所述遍历所述页面目录中各页面文件内的文本对象,从所述文本对象中反向提取关键业务元数据,包括:

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述置信度评估规则包括以下评估维度:所述关键业务元数据字段在多个页面文件中提取结果的一致性比例、正则表达式匹配到的特征词完整度、及提取所述候选取值的页面在文档中的顺序权重。

7.根据权利要求3所述的方法,其特征在于,所述基于所述页面目录中的页面结构信息和所述关键业务元数据重构所述入口文件,包括:

8.根据权利要求1所述的方法,其特征在于,所述获得可解压的中间文件,包括:

9.根据权利要求1所述的方法,其特征在于,所述获得可解压的中间文件,包括:

10.一种基于文档结构语义的ofd文件修复系统,其特征在于,所述系统包括: