一种基于OFD文档的表格提取方法技术

技术编号:20622777 阅读:21 留言:0更新日期:2019-03-20 14:31
本发明专利技术公开了一种基于OFD文档的表格提取方法,包括数据解析功能流程和数据应用功能流程,将应用层和逻辑层分离,使两部分互不影响,解决了因为文档格式及应用程序环境因素导致无法从OFD文档中提取表格的问题。实现了OFD文档表格提取的功能。架构清晰明了,便于理解、容易实现、方便调试程序及后期维,护增强了提取技术的扩展性。完全基于OFD文档的标准格式,几乎不需要除本发明专利技术方法外的其它软件支持,降低成本。可以达到无损的进行表格提取。且可提取和编辑表格内的文字等相关信息。

A Form Extraction Method Based on OFD Document

The invention discloses a table extraction method based on OFD documents, which includes data parsing function flow and data application function flow. The application layer and logic layer are separated so that the two parts do not affect each other, and the problem of unable to extract tables from OFD documents due to document format and application environment factors is solved. The function of extracting form from OFD document is realized. The architecture is clear, easy to understand, easy to implement, easy to debug programs and later maintenance, and protection enhances the extensibility of extraction technology. Fully based on the standard format of the OFD document, there is little need for other software support besides the method of the invention, and the cost is reduced. Non-destructive table extraction can be achieved. It can also extract and edit relevant information such as text in the form.

【技术实现步骤摘要】
一种基于OFD文档的表格提取方法
本专利技术涉及电子文档格式的处理技术,特别涉及一种基于OFD文档的表格提取方法。
技术介绍
版式文档格式,是将文字、图形、图像等多种数字内容对象按照一定规则进行版面固化呈现的一种格式。OFD(openfixedlayoutdocument)文档是由国家自主研发,独立于软件、硬件、操作系统、输出设备的版式文档格式。随着国家对OFD版式文档的需求及应用推广力度的增加,现在各行各业对OFD文档的使用也越来越频繁。目前OFD文档,除了文档内容的阅读以外,还有文档批注、编辑书签、加盖电子印章、编辑附件等功能,而在政府和机关单位对于OFD文档的批示及盖章操作尤为频繁。由于OFD文档的定义及格式限制,其设计目的是为了阅读和打印文档,而与阅读器的交互就比较弱,其中就包含图像、表格、文字等内容的提取。目前的阅读器都只能相对轻松的对OFD文档中的文字内容进行提取,而对提取图像或表格,总是存在效率低、精确度低或无法实现等问题。目前虽然可以通过屏幕截取的方式提取表格,但是屏幕截取方式因涉及到硬件设备DPI,图片易失真,屏幕截取出的表格内容不可选取也不能进行编辑。
技术实现思路
本专利技术为了解决上述技术问题,提供一种基于OFD文档的表格提取方法,以OFD文档标准规范为核心,通过对OFD文档内容的解析,在OFD文档中实现了提取表格功能,能使OFD文档与其它应用程序的交互性更强,提升OFD文档的应用性,同时也可以提升工作效率。本专利技术采用以下技术方案实现上述目的。一种基于OFD文档的表格提取方法,包括应用接口模块、数据管理模块、数据提取模块和数据解析模块,其特征在于,所述应用接口模块:提供通俗易懂的接口函数,给上层应用调用;同时,负责调用数据管理模块用以实现接口函数;所述数据管理模块:用于对数据提取模块和数据解析模块的调度,同时用于汇总由数据提取模块和数据解析模块的数据内容,并将数据交付给应用接口模块使用;所述数据提取模块:对OFD文档进行解析,从OFD文档中提取所有数据,并将其按表格数据对象和非表格数据对象分类,并将分类数据统一交给数据管理模块进行统一分配管理;所述数据解析模块:从数据管理模块中获取到表格数据对象,通过表格边框查找算法,将所有表格数据对象进行统一归类处理,得出表格对象,并将表格对象组成表格列表,并将表格列表交给数据管理模块。进一步,所述表格数据:为构成表格的基本元素,可理解为线段,其包含有线段的起始点X轴坐标和Y轴坐标,终止点X轴坐标和Y轴坐标,以及是否为虚线的数据内容。进一步,所述表格数据对象:为一种表格数据集合。进一步,所述非表格数据对象:为文字、图片和批注的非线段数据内容。进一步,所述表格对象:为由表格对象数据构成的完整表格。进一步,所述表格列表:为由表格对象组成的列表。进一步,所述数据解析模块的具体流程如下:1)遍历所有表格数据对象,取出其顶点的X轴坐标与Y轴坐标均为最小值的表格数据对象;若存在两个或两个以上相同的数据对象,则取第一个查找到的表格数据对象,并将此表格数据对象定义为基线;2)将基线保存在一个临时的表格对象中;3)遍历查找所有表格数据对象,取出当中所有顶点坐标与基线有相交的表格数据对象,并将取出的表格数据对象保存在步骤2)中的临时表格对象中;4)将步骤3)中查找到的第一个表格数据对象定义为基线,重复步骤3),直至遍历完所有表格数据对象;5)取出临时表格对象的四个顶点坐标;6)遍历所有非表格数据对象,取出当中所有坐标在步骤5)中四个顶点坐标范围内的非表格数据对象,并将其保存在临时表格对象中;7)创建表格对象列表,将临时表格对象保存在表格对象列表中;8)将表格对象列表交给数据管理模块保存。一种基于OFD文档的表格提取方法,还包括数据解析功能流程和数据应用功能流程:所述数据解析功能流程如下:1)启动应用接口模块:创建应用接口模块对象,应用程序使用应用接口模块的对外接口函数;2)启动数据管理模块:创建数据管理模块对象,数据管理模块开始工作;3)启动数据提取模块:创建数据提取模块对象,由数据管理模块分配其工作的内容;4)启动数据解析模块:创建数据解析模块对象,由数据管理模块分配其工作的内容;所述数据应用功能流程如下:1)调用应用接口模块:应用程序向应用接口模块调用功能函数并传入参数,用以获取表格数据;2)调用数据管理模块:数据接口模块调用数据管理模块,根据应用程序传入的参数,用以判断是否为有效的表格数据;3)返回结果:数据管理模块通过对传入参数的匹配,将匹配结果返回给应用程序。本专利技术将应用层和逻辑层分离,使两部分互不影响,解决了因为文档格式及应用程序环境因素导致无法从OFD文档中提取表格的问题。实现了OFD文档表格提取的功能。架构清晰明了,便于理解、容易实现、方便调试程序及后期维护,增强了提取技术的扩展性。完全基于OFD文档的标准格式,几乎不需要除本专利技术方法外的其它软件支持,降低成本。可以达到无损的进行表格提取,且可提取和编辑表格内的文字等相关信息。以上效果是屏幕截取提取表格的方式无法达到的。附图说明图1为本专利技术中数据解析功能流程图;图2为本专利技术中数据应用功能流程图;图3为本专利技术中数据解析模块的流程图。具体实施方式以下结合附图对本专利技术作进一步说明。参见图1至图3,一种基于OFD文档的表格提取方法,包括数据解析功能流程和数据应用功能流程,其中数据解析功能流程(如图1所示)包括以下步骤:应用程序101:用于调用本专利技术方法的应用,其形式不限,可以是可执行程序也可以是动态库。启动应用接口模块102:由应用程序创建应用接口模块对象,使应用程序可以正常调用应用接口模块提供的接口函数。启动数据管理模块103:由应用接口模块创建数据管理模块对象,数据管理模块其作用在于管理数据提取模块和数据解析模块,并保存数据提取模块和数据解析模块提供的数据结果,以便于将数据结果通过应用接口模块传递给应用程序。创建原始数据列表和表格数据列表104:数据管理模块创建原始数据列表和表格数据列表。原始数据列表中将存放由数据提取模块从OFD文档中提取的所有疑似表格的数据;表格数据列表中将存放由数据解析模块对原始数据列表解析之后,所有表格的数据。启动数据提取模块105:数据管理模块创建数据提取模块对象,数据提取模块其作用在于提取OFD文档中疑似表格的数据内容,并将数据存入原始数据列表。启动数据解析模块106:数据管理模块创建数据解析模块对象,数据解析模块其作用在于对原始数据列表进行解析,从中获取所有表格数据内容,并将数据存入表格数据列表。解析OFD文档107:数据提取模块对指定的OFD文档进行解析,提取出所有疑似表格的数据内容。添加数据至原始数据列表108:由数据提取模块将所有疑似表格的数据内容,以列表的形式存入原始数据列表中。解析原始数据列表109:由数据解析模块对原始数据列表进行解析,从中获取所有表格数据内容。添加数据至表格数据列表110:由数据解析模块将所有表格数据内容,以列表的形式存入表格数据列表中。结束111:数据解析流程结束。数据应用功能流程(如图2所示)其形式不限,可以是可执行程序也可以是动态库。应用接口模块202:由应用程序201调用应用接口模块提供的对应接口函数,以实现对应的功能。页号和坐标2本文档来自技高网...

【技术保护点】
1.一种基于OFD文档的表格提取方法,包括应用接口模块、数据管理模块、数据提取模块和数据解析模块,其特征在于,所述应用接口模块:提供通俗易懂的接口函数,给上层应用调用;同时,负责调用数据管理模块用以实现接口函数;所述数据管理模块:用于对数据提取模块和数据解析模块的调度,同时用于汇总由数据提取模块和数据解析模块的数据内容,并将数据交付给应用接口模块使用;所述数据提取模块:对OFD文档进行解析,从OFD文档中提取所有数据,并将其按表格数据对象和非表格数据对象分类,并将分类数据统一交给数据管理模块进行统一分配管理;所述数据解析模块:从数据管理模块中获取到表格数据对象,通过表格边框查找算法,将所有表格数据对象进行统一归类处理,得出表格对象,并将表格对象组成表格列表,并将表格列表交给数据管理模块。

【技术特征摘要】
1.一种基于OFD文档的表格提取方法,包括应用接口模块、数据管理模块、数据提取模块和数据解析模块,其特征在于,所述应用接口模块:提供通俗易懂的接口函数,给上层应用调用;同时,负责调用数据管理模块用以实现接口函数;所述数据管理模块:用于对数据提取模块和数据解析模块的调度,同时用于汇总由数据提取模块和数据解析模块的数据内容,并将数据交付给应用接口模块使用;所述数据提取模块:对OFD文档进行解析,从OFD文档中提取所有数据,并将其按表格数据对象和非表格数据对象分类,并将分类数据统一交给数据管理模块进行统一分配管理;所述数据解析模块:从数据管理模块中获取到表格数据对象,通过表格边框查找算法,将所有表格数据对象进行统一归类处理,得出表格对象,并将表格对象组成表格列表,并将表格列表交给数据管理模块。2.根据权利要求1所述的基于OFD文档的表格提取方法,其特征在于,所述表格数据:为构成表格的基本元素,可理解为线段,其包含有线段的起始点X轴坐标和Y轴坐标,终止点X轴坐标和Y轴坐标,以及是否为虚线的数据内容。3.根据权利要求1所述的基于OFD文档的表格提取方法,其特征在于,所述表格数据对象:为一种表格数据集合。4.根据权利要求1所述的基于OFD文档的表格提取方法,其特征在于,所述非表格数据对象:为文字、图片和批注的非线段数据内容。5.根据权利要求1所述的基于OFD文档的表格提取方法,其特征在于,所述表格对象:为由表格对象数据构成的完整表格。6.根据权利要求1所述的基于OFD文档的表格提取方法,其特征在于,所述表格列表:为由表格对象组成的列表。7.根据权利要求1所述的基于OFD文档的表格提取方法,其特征在于,所述数据解析模块的具体流程如...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:江西金格科技股份有限公司
类型:发明
国别省市:江西,36

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1