CN113850265A - Pdf文档的解析方法、装置、电子设备及存储介质 - Google Patents
Pdf文档的解析方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113850265A CN113850265A CN202111082611.1A CN202111082611A CN113850265A CN 113850265 A CN113850265 A CN 113850265A CN 202111082611 A CN202111082611 A CN 202111082611A CN 113850265 A CN113850265 A CN 113850265A
- Authority
- CN
- China
- Prior art keywords
- character
- coordinate
- character string
- abscissa
- determining
- 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
Images
Landscapes
- Machine Translation (AREA)
Abstract
本发明公开了一种PDF文档的解析方法、装置、电子设备及存储介质,该方法包括:根据PDF文档获取页面对象;根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合;根据页面对象中字符元素的坐标确定字符串;根据字符串的坐标和横坐标集合确定字符串的列标识;根据字符串的坐标和纵坐标集合确定字符串的行标识;根据行标识和列标识绘制电子表格。能够准确的确定字符串在电子表格中所在的行标识。根据行标识和列标识准确的将PDF中表格内的字符串提取到电子表格中,提高PDF中表格的解析效率。
Description
技术领域
本发明实施例涉及数据处理技术,尤其是PDF文档的人工智能解析技术,尤其涉及一种PDF文档的解析方法、装置、电子设备及存储介质。
背景技术
可携带文档格式(Portable Document Format,PDF),是由Adobe Systems用于与应用程序、操作***、硬件无关的方式进行文件交换所发展出的文件格式。PDF格式的核心,包含了一系列描述如何在页面上进行绘制的指令流。其中的文本数据并非是以段落或文字的形式进行存储,而是以记录了页面特定位置信息的字符的形式进行存储。
在实际使用中,需要将PDF中的图像指令转换为电子表格等电子文档。目前使用基于pgthon的开源pdf解析工具(如pdfplumber、py2pdf或pdfminer等)进行PDF文档的解析。然而解析工具只能提取PDF中格式完整的表格,若表格中存在没有绘制的表格线等情况,则无法准确的对PDF文档进行解析。
发明内容
本发明提供一种PDF文档的解析方法、装置、电子设备及存储介质,以实现提高PDF文档的解析效率。
第一方面,本发明实施例提供了一种PDF文档的解析方法,包括:
根据PDF文档获取页面对象;
根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合;
根据页面对象中字符元素的坐标确定字符串;
根据字符串的坐标和横坐标集合确定字符串的列标识;
根据字符串的坐标和纵坐标集合确定字符串的行标识;
根据行标识和列标识绘制电子表格。
第二方面,本发明实施例还提供了一种PDF文档的解析装置,包括:
页面对象获取模块,用于根据PDF文档获取页面对象;
坐标集合确定模块,用于根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合;
字符串确定模块,用于根据页面对象中字符元素的坐标确定字符串;
列标识确定模块,用于根据字符串的坐标和横坐标集合确定字符串的列标识;
行标识确定模块,用于根据字符串的坐标和纵坐标集合确定字符串的行标识;
绘制模块,用于根据行标识和列标识绘制电子表格。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行程序时实现如本申请实施例所示的PDF文档的解析方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行如本申请实施例所示的PDF文档的解析方法。
本申请实施例提供的PDF文档的解析方法,根据PDF文档获取页面对象;根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合;根据页面对象中字符元素的坐标确定字符串;根据字符串的坐标和横坐标集合确定字符串的列标识;根据字符串的坐标和纵坐标集合确定字符串的行标识;根据行标识和列标识绘制电子表格。相对于目前PDF文档解析效率低的问题,本发明实施例提供的PDF文档的解析方法,能够在对PDF文档进行解析后分别对直线元素和字符元素进行处理,进而快速准确的提取PDF中的内容。根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合,能够确定表格区域。根据横坐标集合中的横坐标绘制表格纵向线,根据纵坐标集合中的纵坐标绘制表格横向线,进而确定电子表格中需要绘制的表格线。根据字符元素的坐标能够确定位于同行的字符串,根据字符串的坐标和横坐标集合,能够确定字符串所在的列标识。结合字符串的纵坐标,能够准确的确定字符串在电子表格中所在的行标识。根据行标识和列标识准确的将PDF中表格内的字符串提取到电子表格中,提高PDF中表格的解析效率。
附图说明
图1是本发明实施例一中的PDF文档的解析方法的流程图;
图2是本发明实施例二中的PDF文档的解析方法的流程图;
图3是本发明实施例三中的PDF文档的解析装置的结构示意图;
图4是本发明实施例四中的计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的PDF文档的解析方法的流程图,本实施例可适用于对PDF文档进行解析的情况,该方法可以由进行PDF文档解析的计算机设备来执行,计算机设备可以是个人电脑或笔记本地电脑灯,计算机设备还可以是终端,终端包括智能手机、平板电脑等,该方法具体包括如下步骤:
步骤110、根据PDF文档获取页面对象。
可选的,通过pdfplunmer工具对PDF文档进行识别,得到页面数组。其中,页面数组由至少一个页面对象组成,每一个网页对象标识PDF文档中的一页。每个PDF对象具有直线元素和字符元素等多种元素。
直线元素包括直线元素的端点坐标,端点坐标为直线两个端点的坐标。字符元素包括用于表示字符占用坐标区间的坐标,以及字符内容。表示字符占用坐标区间的坐标可以为字符的左上LU坐标和右下RD坐标。字符可以为单一字符。可以使用坐上LU坐标或右下RD坐标作为表示字符位置的坐标。
步骤120、根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合。
其中,横坐标集合包括页面对象中全部直线元素的端点坐标。端点坐标可以通过二维坐标(x,y)表示。X表示端点的横坐标,y表示断电的纵坐标。对应PDF文档的内容为表格时,组成表格的直线被识别后,得到直线元素的端点坐标,端点坐标拆分为横坐标x和纵坐标y。
表格文档中的直线包括水平线和垂直线,水平线的两个端点的纵坐标相同,垂直线的两个端点的横坐标相同。因此,为了更加简介的表示水平线,可以使用水平线的端点共有的纵坐标表示某条水平线。同理,为了更加简介的表示垂直线,可以使用垂直线的端点共有的横坐标表示某条垂直线。根据直线元素的端点坐标可以得到多个横坐标用于表示多条垂直线,还可以得到多个纵坐标用于表示多条水平线。
多个横坐标组成横坐标集合,横坐标集合包括页面对象中全部直线元素的端点的横坐标,横坐标集合用于表示电子表格纵向表格线(即垂直线)的横坐标。如有相同的横坐标,则进行去重。
多个纵坐标组成纵坐标集合,纵坐标集合包括页面对象中全部直线元素的端点的纵坐标,纵坐标集合用于表示电子表格横向表格线(即碎屏险)的纵坐标。如有相同的纵坐标,则进行去重。
在得到横坐标集合和纵坐标结合后,由于表格中有时会存在表格线条的阴影线,或者由于扫描等原因出现两条比邻的表格线框,这种属于PDF文档携带的模糊线条。为了更加准确的识别表格线条,避免误识别不必要的线条,进一步的,在步骤120、根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合之后,还包括:
若横坐标集合中第一横坐标和第二横坐标的差值小于预设距离阈值,则删除第一横坐标或删除第二横坐标;若纵坐标集合中第一纵坐标和第二纵坐标对差值小于预设距离阈值,则删除第一纵坐标或删除第二纵坐标。
预设距离阈值可以为0.5像素。分别在横坐标集合和纵坐标集合中,比较相邻的两个坐标(例如,第一横坐标和第二横坐标,或者第一纵坐标和第二纵坐标)的差值是否小于预设距离阈值。若小于预设距离阈值,则说明该相邻的两个坐标距离过近,属于模糊线条,进而删除其中一个坐标。
上述实施方式中,通过预设距离阈值能够准确的识别出模糊线条,并删除模糊线条,进而提高PDF文档识别的准确性。
步骤130、根据页面对象中字符元素的坐标确定字符串。
可以获取页面对象包含的全部字符元素。字符元素具有左上坐标和右下坐标。由于字符串为横向分布在同一行中的多个字符组成,因此可以先根据全部字符元素划分多个行,在每个行中,根据字符元素之间的间距确定字符串。可以统一使用字符元素的左上坐标划分行。也可以统一用字符元素的右下坐标划分行。
在一种实现方式中,步骤130、根据页面对象中字符元素的坐标确定字符串,可通过下述方式实施:
步骤131、根据纵坐标对目标页面对象中字符元素进行划分,得到多个行分组。
目标页面对象为PDF文档中任意一个页面对象。根据字符元素的左上坐标的纵坐标(y坐标)对目标页面对象中的全部字符元素进行分组,每一行分组中的字符元素的左上坐标具有相同的纵坐标。
步骤132、针对每个所述行分组,根据相邻字符之间的间距确定至少一个字符串。
在每个行分组中,根据字符的横坐标的数值确定字符顺序以及字符之间的间距,进而确定字符串。
在上述实施方式中,根据相邻字符之间的间距确定至少一个字符串,可实施为:
根据字符元素的左上坐标中横坐标的大小对行分组中对多个字符元素进行排序;在排序结果中,依次获取两个相邻的字符元素的间距。若间距小于预设间距阈值,则确定两个相邻的字符元素属于同一字符串。
在行分组中,根据字符元素的左上坐标中横坐标的大小对行分组中对多个字符元素进行排序,得到排序结果。可以根据横坐标数值按照升序方式进行排序。在排序结果中,依次获取两个相邻的字符元素的间距。若该间距小于预设间距阈值,则确定该两个相邻的字符元素属于同一字符串。其中,该预设间距阈值可以为1像素。继续比较下一组相邻的字符元素,前一组相邻的字符元素的横坐标较大的字符元素作为后一组相邻字符元素中横坐标较小的字符元素。
示例性的,两个相邻的字符元素为第一个字符元素和第二个字符元素。获取第一个字符元素与第二个字符元素的间距,若该间距小于预设间距阈值,则确定第一个字符元素和第二个字符元素属于同一字符串。继续比较第二个字符元素与第三个字符元素的间距是否小于预设间距阈值。若该间距小于预设间距阈值,则确定第二个字符元素和第三个字符元素属于同一字符串。若间距大于预设间距阈值,则确定第二个字符元素和第三个字符元素属于不同的字符串。
以此类推,判断第N个字符元素与第N+1个字符元素的间距是否小于预设间距阈值,若小于,则认为第N个字符元素与第N+1个字符元素属于同一字符串。否则,如果间距大于预设间距阈值,则认为第N个字符元素与第N+1个字符元素不属于同一字符串,并存储识别到的字符串。
上述实施方式能够以字符元素的坐标为依据在行分组中快速准确的确定字符串,提高字符串速度和准确性。
进一步的,在获取两个相邻的字符元素的间距时,可以通过下述方式计算。假设第一字符元素和第二字符元素为两个相邻的字符元素,第一字符元素的右下坐标的横坐标数值小于第二字符元素的左上坐标的横坐标数值。相应的,获取两个相邻的字符元素的间距,包括:
计算第二字符元素的左上坐标的横坐标数值与第一字符元素的右下坐标的横坐标数值的差值,将差值作为第一字符元素与第二字符元素的间距;其中,第一字符元素和第二字符元素为两个相邻的字符元素,第一字符元素的右下坐标的横坐标数值小于第二字符元素的左上坐标的横坐标数值。
通过上述方式能够更加准确的计算出相邻的两个字符之间的间距,进而提高字符串的识别准确率。
步骤140、根据字符串的坐标和横坐标集合确定字符串的列标识。
步骤130确定的字符串也可以使用左上坐标和右下坐标表示,字符串的左上坐标为字符串第一个字符元素的左上坐标,字符串的右下左右为字符串最后一个字符元素的右下坐标。
横坐标集合用于记录表格纵向表格线的横坐标。可以对横坐标集合中的横坐标进行排序,进而得到表格中的多个列。每个列对应两个相邻的横坐标。根据字符串的左上坐标中的横坐标以及字符串的右下坐标中的横坐标,以及表示列的两个横坐标,能够确定字符串所在的列,即列标识。
在一种实现方式中,步骤140、根据字符串的坐标和横坐标集合确定字符串的列标识,可通过下述方式实施:
根据字符串包含的首字符和末字符,获取字符串占用的第一横坐标区间;根据横坐标集合确定相邻的纵向表格线之间的第二横坐标区间;若第一横坐标区间位于第二横坐标区间内,则将第二横坐标区间对应的列标识作为第一横坐标区间表示的字符串的列标识;若第一坐标区间超出一个第二坐标区间,且未超出多个连续坐标区间的范围,则根据最小包含第一坐标区间的多个连续第二坐标区间对应的多个列标识确定合并单元格的列标识;将合并单元格的列标识作为字符串的列标识。
在得到第一坐标区间和多个第二坐标区间后,根据第一坐标区间的起始坐标分别与多个第二坐标区间比较,查找包含第一坐标区间的起始坐标的第二坐标区间,若某个第二坐标区间包含了第一坐标区间的起始坐标和截止坐标,则将第二坐标区间的列标识作为第一坐标区间表示的字符串的列标识。
表格中可以包括单元格,也可以包括多个单元格组成的合并单元格。字符串若位于合并单元格中,则会超出第二坐标区间,此时可以获取该第二坐标区间相邻的另一个第二坐标区间,并判断字符串是否位于两个第二坐标区间组成的横坐标区间内,若位于,则将上述两个第二坐标区间组成的合并单元格的列标识作为字符串的列标识。
上述实施方式能够基于字符串中字符元素的横坐标准确的确定第一横坐标区间,根据横坐标结合确定多个第二横坐标区域,根据第二横坐标区域与第一横坐标区域的包含关系,能够快速准确的确定字符串所在的第一坐标区间,进而确定字符串所在的列标识,提高字符串定位准确性。
步骤150、根据字符串的坐标和纵坐标集合确定字符串的行标识。
纵坐标集合中包含PDF文档中横向表格线的纵坐标。可以将每个行分组得到的字符串作为位于同行的字符串。进一步的,可以建立字符串与纵坐标的关联关系,进而能够根据纵坐标确定该纵坐标关联的同行的字符串。
进一步的,在步骤150、根据字符串的坐标和纵坐标集合确定字符串的行标识之前,还包括:
根据纵坐标集合确定表格范围以外的干扰字符串;删除干扰字符串。
若字符串的横坐标小于纵坐标集合中纵坐标的最小值,则确定字符串位于表格范围以外。或者,若字符串的横坐标大于纵坐标集合中纵坐标的最大值,则确定字符串位于表格范围以外。
上述实施方式能够筛选出表格以外的内容,进一步提高表格识别的准确性。
步骤160、根据行标识和列标识绘制电子表格。
在得到字符串的行标识和列标识后,在电子表格中,根据行标识和列标识确定单元格,在该单元格中写入字符串。若同一个单元格中包含多个字符串,则多个字符串分别按行分组进行划分,在每个分组中,按照横坐标数值依次写入。
本申请实施例提供的PDF文档的解析方法,根据PDF文档获取页面对象;根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合;根据页面对象中字符元素的坐标确定字符串;根据字符串的坐标和横坐标集合确定字符串的列标识;根据字符串的坐标和纵坐标集合确定字符串的行标识;根据行标识和列标识绘制电子表格。相对于目前PDF文档解析效率低的问题,本发明实施例提供的PDF文档的解析方法,能够在对PDF文档进行解析后分别对直线元素和字符元素进行处理,进而快速准确的提取PDF中的内容。根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合,能够确定表格区域。根据横坐标集合中的横坐标绘制表格纵向线,根据纵坐标集合中的纵坐标绘制表格横向线,进而确定电子表格中需要绘制的表格线。根据字符元素的坐标能够确定位于同行的字符串,根据字符串的坐标和横坐标集合,能够确定字符串所在的列标识。结合字符串的纵坐标,能够准确的确定字符串在电子表格中所在的行标识。根据行标识和列标识准确的将PDF中表格内的字符串提取到电子表格中,提高PDF中表格的解析效率。
实施例二
图2为本发明实施例二提供的一种PDF文档的解析方法的流程示意图,作为对上述实施例的进一步说明,该方法包括:
步骤201、根据PDF文档获取页面对象。
步骤202、根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合。
进一步的,若横坐标集合中第一横坐标和第二横坐标的差值小于预设距离阈值,则删除第一横坐标或删除第二横坐标;若纵坐标集合中第一纵坐标和第二纵坐标对差值小于预设距离阈值,则删除第一纵坐标或删除第二纵坐标。
步骤203、根据纵坐标对目标页面对象中字符元素进行划分,得到多个行分组。
步骤204、针对每个行分组,根据字符元素的左上坐标中横坐标的大小对行分组中对多个字符元素进行排序。
步骤205、在排序结果中,依次获取两个相邻的字符元素的间距。
其中,计算第二字符元素的左上坐标的横坐标数值与第一字符元素的右下坐标的横坐标数值的差值,将差值作为第一字符元素与第二字符元素的间距;其中,第一字符元素和第二字符元素为两个相邻的字符元素,第一字符元素的右下坐标的横坐标数值小于第二字符元素的左上坐标的横坐标数值。
步骤206、若间距小于预设间距阈值,则确定两个相邻的字符元素属于同一字符串。若间距大于预设间距阈值,则确定两个相邻的字符元素属于不同一字符串。
步骤207、根据字符串包含的首字符和末字符,获取字符串占用的第一横坐标区间。
步骤208、根据横坐标集合确定相邻的纵向表格线之间的第二横坐标区间。
步骤209、若第一横坐标区间位于第二横坐标区间内,则将第二横坐标区间对应的列标识作为第一横坐标区间表示的字符串的列标识。
步骤210、若第一坐标区间超出一个第二坐标区间,且未超出多个连续坐标区间的范围,则根据最小包含第一坐标区间的多个连续第二坐标区间对应的多个列标识确定合并单元格的列标识;将合并单元格的列标识作为字符串的列标识。
进一步的,根据纵坐标集合确定表格范围以外的干扰字符串;删除干扰字符串。
步骤211、根据字符串的坐标和纵坐标集合确定字符串的行标识。
步骤212、根据行标识和列标识绘制电子表格。
本申请实施例提供的PDF文档的解析方法,能够在对PDF文档进行解析后分别对直线元素和字符元素进行处理,进而快速准确的提取PDF中的内容。根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合,能够确定表格区域。根据横坐标集合中的横坐标绘制表格纵向线,根据纵坐标集合中的纵坐标绘制表格横向线,进而确定电子表格中需要绘制的表格线。根据字符元素的坐标能够确定位于同行的字符串,根据字符串的坐标和横坐标集合,能够确定字符串所在的列标识。结合字符串的纵坐标,能够准确的确定字符串在电子表格中所在的行标识。根据行标识和列标识准确的将PDF中表格内的字符串提取到电子表格中,提高PDF中表格的解析效率。
实施例三
图3为本发明实施例三提供的PDF文档的解析装置的结构示意图,本实施例可适用于对PDF文档进行解析的情况,该装置可以由进行PDF文档解析的计算机设备来实施,计算机设备可以是个人电脑或笔记本地电脑灯,计算机设备还可以是终端,终端包括智能手机、平板电脑等,该装置具体包括页面对象获取模块310、坐标集合确定模块320、字符串确定模块330、列标识确定模块340、行标识确定模块350以及绘制模块360。
页面对象获取模块310,用于根据PDF文档获取页面对象;
坐标集合确定模块320,用于根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合;
字符串确定模块330,用于根据页面对象中字符元素的坐标确定字符串;
列标识确定模块340,用于根据字符串的坐标和横坐标集合确定字符串的列标识;
行标识确定模块350,用于根据字符串的坐标和纵坐标集合确定字符串的行标识;
绘制模块360,用于根据行标识和列标识绘制电子表格。
在上述实施例的基础上,字符串确定模块330用于:
根据纵坐标对目标页面对象中字符元素进行划分,得到多个行分组;
针对每个行分组,根据相邻字符之间的间距确定至少一个字符串。
在上述实施例的基础上,字符串确定模块330用于:
根据字符元素的左上坐标中横坐标的大小对行分组中对多个字符元素进行排序;
在排序结果中,依次获取两个相邻的字符元素的间距;
若间距小于预设间距阈值,则确定两个相邻的字符元素属于同一字符串。
在上述实施例的基础上,字符串确定模块330用于:
计算第二字符元素的左上坐标的横坐标数值与第一字符元素的右下坐标的横坐标数值的差值,将差值作为第一字符元素与第二字符元素的间距;其中,第一字符元素和第二字符元素为两个相邻的字符元素,第一字符元素的右下坐标的横坐标数值小于第二字符元素的左上坐标的横坐标数值。
在上述实施例的基础上,列标识确定模块340用于:
根据字符串包含的首字符和末字符,获取字符串占用的第一横坐标区间;
根据横坐标集合确定相邻的纵向表格线之间的第二横坐标区间;
若第一横坐标区间位于第二横坐标区间内,则将第二横坐标区间对应的列标识作为第一横坐标区间表示的字符串的列标识;
若第一坐标区间超出一个第二坐标区间,且未超出多个连续坐标区间的范围,则根据最小包含第一坐标区间的多个连续第二坐标区间对应的多个列标识确定合并单元格的列标识;将合并单元格的列标识作为字符串的列标识。
在上述实施例的基础上,还包括干扰字符串处理模块,干扰字符串处理模块用于:
根据纵坐标集合确定表格范围以外的干扰字符串;
删除干扰字符串。
在上述实施例的基础上,还包括坐标集合去燥模块,坐标集合去燥模块用于:
在根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合之后,还包括:
若横坐标集合中第一横坐标和第二横坐标的差值小于预设距离阈值,则删除第一横坐标或删除第二横坐标;
若纵坐标集合中第一纵坐标和第二纵坐标对差值小于预设距离阈值,则删除第一纵坐标或删除第二纵坐标。
本申请实施例提供的PDF文档的解析装置,页面对象获取模块310,用于根据PDF文档获取页面对象;坐标集合确定模块320,用于根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合;字符串确定模块330,用于根据页面对象中字符元素的坐标确定字符串;列标识确定模块340,用于根据字符串的坐标和横坐标集合确定字符串的列标识;行标识确定模块350,用于根据字符串的坐标和纵坐标集合确定字符串的行标识;绘制模块360,用于根据行标识和列标识绘制电子表格。相对于目前PDF文档解析效率低的问题,本发明实施例提供的PDF文档的解析装置,能够在对PDF文档进行解析后分别对直线元素和字符元素进行处理,进而快速准确的提取PDF中的内容。根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合,能够确定表格区域。根据横坐标集合中的横坐标绘制表格纵向线,根据纵坐标集合中的纵坐标绘制表格横向线,进而确定电子表格中需要绘制的表格线。根据字符元素的坐标能够确定位于同行的字符串,根据字符串的坐标和横坐标集合,能够确定字符串所在的列标识。结合字符串的纵坐标,能够准确的确定字符串在电子表格中所在的行标识。根据行标识和列标识准确的将PDF中表格内的字符串提取到电子表格中,提高PDF中表格的解析效率。
本发明实施例所提供的PDF文档的解析装置可执行本发明任意实施例所提供的PDF文档的解析方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4为本发明实施例四提供的一种计算机设备的结构示意图,如图4所示,该计算机设备包括处理器40、存储器41、输入装置42和输出装置43;计算机设备中处理器40的数量可以是一个或多个,图4中以一个处理器40为例;计算机设备中的处理器40、存储器41、输入装置42和输出装置43可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的PDF文档的解析方法对应的程序指令/模块(例如,PDF文档的解析装置中的页面对象获取模块310、坐标集合确定模块320、字符串确定模块330、列标识确定模块340、行标识确定模块350以及绘制模块360)。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的PDF文档的解析方法。
存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置42可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置43可包括显示屏等显示设备。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种PDF文档的解析方法,该方法包括:
根据PDF文档获取页面对象;
根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合;
根据页面对象中字符元素的坐标确定字符串;
根据字符串的坐标和横坐标集合确定字符串的列标识;
根据字符串的坐标和纵坐标集合确定字符串的行标识;
根据行标识和列标识绘制电子表格。
在上述实施方式的基础上,根据页面对象中字符元素的坐标确定字符串,包括:
根据纵坐标对目标页面对象中字符元素进行划分,得到多个行分组;
针对每个行分组,根据相邻字符之间的间距确定至少一个字符串。
在上述实施方式的基础上,根据相邻字符之间的间距确定至少一个字符串,包括:
根据字符元素的左上坐标中横坐标的大小对行分组中对多个字符元素进行排序;
在排序结果中,依次获取两个相邻的字符元素的间距;
若间距小于预设间距阈值,则确定两个相邻的字符元素属于同一字符串。
在上述实施方式的基础上,获取两个相邻的字符元素的间距,包括:
计算第二字符元素的左上坐标的横坐标数值与第一字符元素的右下坐标的横坐标数值的差值,将差值作为第一字符元素与第二字符元素的间距;其中,第一字符元素和第二字符元素为两个相邻的字符元素,第一字符元素的右下坐标的横坐标数值小于第二字符元素的左上坐标的横坐标数值。
在上述实施方式的基础上,根据字符串的坐标和横坐标集合确定字符串的列标识,包括:
根据字符串包含的首字符和末字符,获取字符串占用的第一横坐标区间;
根据横坐标集合确定相邻的纵向表格线之间的第二横坐标区间;
若第一横坐标区间位于第二横坐标区间内,则将第二横坐标区间对应的列标识作为第一横坐标区间表示的字符串的列标识;
若第一坐标区间超出一个第二坐标区间,且未超出多个连续坐标区间的范围,则根据最小包含第一坐标区间的多个连续第二坐标区间对应的多个列标识确定合并单元格的列标识;将合并单元格的列标识作为字符串的列标识。
在上述实施方式的基础上,在根据字符串的坐标和纵坐标集合确定字符串的行标识之前,还包括:
根据纵坐标集合确定表格范围以外的干扰字符串;
删除干扰字符串。
在上述实施方式的基础上,在根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合之后,还包括:
若横坐标集合中第一横坐标和第二横坐标的差值小于预设距离阈值,则删除第一横坐标或删除第二横坐标;
若纵坐标集合中第一纵坐标和第二纵坐标对差值小于预设距离阈值,则删除第一纵坐标或删除第二纵坐标。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的PDF文档的解析方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
值得注意的是,上述PDF文档的解析装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种PDF文档的解析方法,其特征在于,包括:
根据PDF文档获取页面对象;
根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合;
根据所述页面对象中字符元素的坐标确定字符串;
根据所述字符串的坐标和所述横坐标集合确定所述字符串的列标识;
根据所述字符串的坐标和所述纵坐标集合确定所述字符串的行标识;
根据所述行标识和所述列标识绘制电子表格。
2.根据权利要求1所述的方法,其特征在于,所述根据所述页面对象中字符元素的坐标确定字符串,包括:
根据纵坐标对目标页面对象中字符元素进行划分,得到多个行分组;
针对每个所述行分组,根据相邻字符之间的间距确定至少一个字符串。
3.根据权利要求2所述的方法,其特征在于,所述根据相邻字符之间的间距确定至少一个字符串,包括:
根据字符元素的左上坐标中横坐标的大小对所述行分组中对多个字符元素进行排序;
在排序结果中,依次获取两个相邻的字符元素的间距;
若所述间距小于预设间距阈值,则确定所述两个相邻的字符元素属于同一字符串。
4.根据权利要求3所述的方法,其特征在于,所述获取两个相邻的字符元素的间距,包括:
计算第二字符元素的左上坐标的横坐标数值与第一字符元素的右下坐标的横坐标数值的差值,将所述差值作为第一字符元素与第二字符元素的间距;其中,所述第一字符元素和所述第二字符元素为两个相邻的字符元素,所述第一字符元素的右下坐标的横坐标数值小于所述第二字符元素的左上坐标的横坐标数值。
5.根据权利要求1所述的方法,其特征在于,所述根据所述字符串的坐标和所述横坐标集合确定所述字符串的列标识,包括:
根据字符串包含的首字符和末字符,获取字符串占用的第一横坐标区间;
根据所述横坐标集合确定相邻的纵向表格线之间的第二横坐标区间;
若所述第一横坐标区间位于所述第二横坐标区间内,则将所述第二横坐标区间对应的列标识作为所述第一横坐标区间表示的所述字符串的列标识;
若第一坐标区间超出一个第二坐标区间,且未超出多个连续坐标区间的范围,则根据最小包含所述第一坐标区间的多个连续第二坐标区间对应的多个列标识确定合并单元格的列标识;将所述合并单元格的列标识作为所述字符串的列标识。
6.根据权利要求1所述的方法,其特征在于,在根据所述字符串的坐标和所述纵坐标集合确定所述字符串的行标识之前,还包括:
根据纵坐标集合确定表格范围以外的干扰字符串;
删除所述干扰字符串。
7.根据权利要求1所述的方法,其特征在于,在根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合之后,还包括:
若所述横坐标集合中第一横坐标和第二横坐标的差值小于预设距离阈值,则删除所述第一横坐标或删除所述第二横坐标;
若所述纵坐标集合中第一纵坐标和第二纵坐标对差值小于预设距离阈值,则删除所述第一纵坐标或删除所述第二纵坐标。
8.一种PDF文档的解析装置,其特征在于,包括:
页面对象获取模块,用于根据PDF文档获取页面对象;
坐标集合确定模块,用于根据页面对象中直线元素的端点坐标确定横坐标集合和纵坐标集合;
字符串确定模块,用于根据所述页面对象中字符元素的坐标确定字符串;
列标识确定模块,用于根据所述字符串的坐标和所述横坐标集合确定所述字符串的列标识;
行标识确定模块,用于根据所述字符串的坐标和所述纵坐标集合确定所述字符串的行标识;
绘制模块,用于根据所述行标识和所述列标识绘制电子表格。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一所述的PDF文档的解析方法。
10.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的PDF文档的解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111082611.1A CN113850265A (zh) | 2021-09-15 | 2021-09-15 | Pdf文档的解析方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111082611.1A CN113850265A (zh) | 2021-09-15 | 2021-09-15 | Pdf文档的解析方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113850265A true CN113850265A (zh) | 2021-12-28 |
Family
ID=78974152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111082611.1A Pending CN113850265A (zh) | 2021-09-15 | 2021-09-15 | Pdf文档的解析方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113850265A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115618847A (zh) * | 2022-12-20 | 2023-01-17 | 浙江保融科技股份有限公司 | 一种解析pdf文档的方法、装置和可读存储介质 |
-
2021
- 2021-09-15 CN CN202111082611.1A patent/CN113850265A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115618847A (zh) * | 2022-12-20 | 2023-01-17 | 浙江保融科技股份有限公司 | 一种解析pdf文档的方法、装置和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795919B (zh) | 一种pdf文档中的表格抽取方法、装置、设备及介质 | |
JP6710483B2 (ja) | 損害賠償請求書類の文字認識方法、装置、サーバ及び記憶媒体 | |
CN110321470B (zh) | 文档处理方法、装置、计算机设备和存储介质 | |
CN108932294B (zh) | 基于索引的简历数据处理方法、装置、设备及存储介质 | |
CN110334346B (zh) | 一种pdf文件的信息抽取方法和装置 | |
CN108563739B (zh) | 天气数据获取方法及装置、计算机装置及可读存储介质 | |
CN106709032A (zh) | 抽取电子表格文档中结构化信息的方法及装置 | |
CN112380825B (zh) | Pdf文档跨页表格合并方法、装置、电子设备及存储介质 | |
WO2019041442A1 (zh) | 图表数据结构化提取方法、***、电子设备及计算机可读存储介质 | |
CN110909123A (zh) | 一种数据提取方法、装置、终端设备及存储介质 | |
CN110990010A (zh) | 一种软件界面代码的生成方法及装置 | |
CN115828874A (zh) | 基于图像识别技术的行业表格数字化处理方法 | |
CN112651331A (zh) | 文本表格提取方法、***、计算机设备及存储介质 | |
JP2022185143A (ja) | テキスト検出方法、テキスト認識方法及び装置 | |
CN109871743B (zh) | 文本数据的定位方法及装置、存储介质、终端 | |
CN111651971A (zh) | 一种表格信息转录方法、***、电子设备和存储介质 | |
CN113283231B (zh) | 获取签章位的方法、设置***、签章***及存储介质 | |
CN113850265A (zh) | Pdf文档的解析方法、装置、电子设备及存储介质 | |
CN109063155B (zh) | 语言模型参数确定方法、装置和计算机设备 | |
CN112749639B (zh) | 模型训练方法、装置、计算机设备和存储介质 | |
CN107871128B (zh) | 一种基于svg动态图表的高鲁棒性图像识别方法 | |
CN112528832A (zh) | 对pdf格式的继电保护定值单进行处理的方法和*** | |
CN113806472A (zh) | 一种对文字图片和图像型扫描件实现全文检索的方法及设备 | |
CN116226681A (zh) | 一种文本相似性判定方法、装置、计算机设备和存储介质 | |
CN112560849B (zh) | 基于神经网络算法的文理分割方法及*** |
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 |