CN115618847B - 一种解析pdf文档的方法、装置和可读存储介质 - Google Patents
一种解析pdf文档的方法、装置和可读存储介质 Download PDFInfo
- Publication number
- CN115618847B CN115618847B CN202211638998.9A CN202211638998A CN115618847B CN 115618847 B CN115618847 B CN 115618847B CN 202211638998 A CN202211638998 A CN 202211638998A CN 115618847 B CN115618847 B CN 115618847B
- Authority
- CN
- China
- Prior art keywords
- picture object
- content
- character
- picture
- pdf document
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Character Input (AREA)
Abstract
本发明公开了一种解析PDF文档的方法、装置和可读存储介质,包括:获取PDF文档;提取PDF文档中的图片对象至空白底板,解析图片对象中的第一内容并按照第一排序算法排序;解析PDF文档中非图片对象的第二内容并按照第二排序算法排序;根据预设规则确认第一内容和第二内容的排序关系,当第一内容和第二内容存在重叠时,根据重叠区域调整图片对象和非图片对象的位置;输出解析结果。通过将PDF文档中的图片对象与非图片对象先分离后解析,避免了PDF文档中因排版复杂而导致的文字识别率低的问题,同时,并根据重叠区域调整图片对象和非图片对象的位置,使得解析后的第一内容和第二内容不会出现重叠,提高了阅读性。
Description
技术领域
本发明涉及文件识别技术领域,具体涉及一种解析PDF文档的方法、装置和可读存储介质。
背景技术
在金融机构和企业等单位,通常使用PDF(Portable Document Format,可携带文档格式)格式的文档,比如收据、票据、保单、通知单、确认书、申请表等。PDF文档中包括的素材种类较多,包括单纯文字渲染、图片渲染等,是一种比较难处理的文档格式。
现有技术中,常用的提取PDF文档中内容信息的方法有两种,一种是直接解析PDF文档,提取文字内容并输出;一种是将整页PDF转换为图片格式,再利用CV(ComputerVision,计算机视觉)识别,比如OCR识别(Optical Character Recognition,光学字符识别),提取文字内容并输出。
但在实际应用过程中,PDF格式的文档包含的素材种类复杂多变,单纯的直接解析或者OCR解析整页图片格式不能满足使用需求。直接解析通常无法抽取非文字来源的内容信息,导致提取的内容信息不完整,并且OCR识别图片文字具有一定的误识别概率,尤其当PDF文档中图片与文字有重合时,难以解析到准确的内容信息,造成内容信息不完整甚至出现错误的问题,识别准确率较低。
发明内容
本发明克服现有技术的缺点,针对解析PDF文档过程中存在的解析准确率低的问题,提供一种解析PDF文档的方法、装置和可读存储介质,解决了PDF文档中同时存在图片对象和非图片对象时,图片对象和非图片对象互相覆盖而导致的内容识别率较低的问题,提高了对复杂排版的PDF文档的有效识别。
为了解决以上技术问题,本发明的技术方案如下:
本发明提供了一种解析PDF文档的方法,包括:
步骤1,获取PDF文档;
步骤2,包括步骤201和步骤202;
步骤201,提取PDF文档中的图片对象至空白底板,解析图片对象中的第一内容并按照第一排序算法排序;
步骤202,解析PDF文档中非图片对象的第二内容并按照第二排序算法排序;
步骤3,根据预设规则确认第一内容和第二内容的排序关系,当第一内容和第二内容存在重叠时,根据重叠区域调整图片对象和非图片对象的位置;
步骤4,输出解析结果;
其中,第一内容包括第一文字块和第一文字块坐标,第一排序算法包括以下步骤:
根据第一文字块坐标确定第一文字块的中心点纵坐标;
选定一个第一文字块作为第一特定文字块,依次计算所有第一文字块的中心点纵坐标和第一特定文字块的中心点纵坐标的第一差值,将所有第一文字块按照第一差值从小到大排序,得到第一内容;
第二内容包括第二文字块和第二文字块坐标,第二排序算法包括以下步骤:
根据第二文字块坐标确定第二文字块的中心点纵坐标和中心点横坐标;
选定一个第二文字块作为第二特定文字块,依次计算所有第二文字块的中心点纵坐标和第二特定文字块的中心点纵坐标的第二差值绝对值,当第二差值绝对值小于第二阈值,判断第二文字块与第二特定文字块在同一行,将所有处于同一行的第二文字块存储至行文字块组;
依次计算行文字块组中各个第二文字块的中心点横坐标和第二特定文字块的中心点横坐标的第二差值,将行文字块组中各个第二文字块按照第二差值从小到大排序,得到文字行,完成行排序;
继续执行上述步骤,直至所有第二文字块完成行排序,得到第二内容。
通过将图片对象和非图片对象进行分离解析,解决了PDF文档中图片对象与非图片对象出现重叠而导致的内容识别率较低的问题,通过分别解析图片对象和非图片对象,能准确识别重叠区域的文字内容,有助于准确的提取内容信息,提高整体的内容识别率。
第一排序算法用于将第一文字块按照对应的第一文字块坐标排序,实现对第一内容的排序;第二排序算法用于将第二文字块按照对应的第二文字块坐标排序,实现对第二内容的排序。通过基于第一排序算法对第一内容排序、第二排序算法对第二内容排序,并根据重叠区域调整图片对象和非图片对象的位置,使得解析后的第一内容和第二内容不会出现重叠,提高了阅读性。
作为优选,根据重叠区域调整图片对象和非图片对象的位置,包括以下步骤:
当图片对象上边界纵坐标小于非图片对象上边界纵坐标且大于非图片对象下边界纵坐标时,将图片对象下移第一距离,第一距离为图片对象上边界纵坐标和非图片对象下边界纵坐标的差值绝对值;
当非图片对象上边界纵坐标小于图片对象上边界纵坐标且大于图片对象下边界纵坐标时,将非图片对象下移第二距离,第二距离为非图片对象上边界纵坐标和图片对象下边界纵坐标的差值绝对值。
当PDF文档中存在重叠区域时,通过图片对象和非图片对象的坐标信息判断需要下移的对象元素以及下移距离,并根据坐标信息计算出下移距离的最小值并进行更新,避免了排版重叠引起的文字丢失问题,提高了文字识别率,同时,提升了阅读体验。
作为优选,第一距离不大于文字行的高度;
和/或,第二距离不大于图片对象的高度。
通过图片对象和非图片对象的坐标信息可准确计算出下移对象的下移距离的最大值,不仅可精确识别文字内容,同时,避免了文字行之间的间距过大,使得更加方便阅读,排版更加精细。
作为优选,预设规则包括:
确定文字行的中心点纵坐标;
将第一文字块的中心点纵坐标和文字行的中心点纵坐标按照从小到大进行列排序;
将第一文字块和文字行按照列排序进行排序,确认第一内容和第二内容的排序关系。
作为优选,当所有第二文字块完成行排序后,第二排序算法还包括:
按照列排序,检测文字行的末端是否存在预设字符;
当文字行的末端存在预设字符,判断文字行是段落末行,文字行和已检测的文字行构成一个段落块。
通过对第二内容中的第二文字块进行分段设置,使得文档段落更加清晰,提高了文档的连贯性,更加方便阅读。
作为优选,解析第二内容包括以下步骤:
若第二内容包括的字符编码为cid编码,提取unicode字符;
若第二内容包括的字符编码为非cid编码,提取第二内容对应的cid编码,根据cid编码与预设字体库中unicode字符的对应关系,提取unicode字符。
作为优选,提取PDF文档中的图片对象至空白底板,还包括:提取图片对象的图片坐标,将图片对象按照图片坐标放置至空白底板。
将图片对象按照图片坐标放置至空白底板,避免了同时提取多张图片对象时,多张图片对象集中在同一个位置引起的叠放,以及解析后无法对文字内容排序的情况,不仅提高了解析效果,同时方便文字排序。
作为优选,解析图片对象中的第一内容之前,还包括:对图片对象进行图像增强处理。
实施中,在对图片对象进行识别前,通过剪切、对比度变换、颜色变换方式对图片对象进行图像增强处理;图像增强处理后,再对图片对象进行识别,获取图片对象中的文字内容、坐标位置、尺寸大小等信息。
通过图像增强处理后,可以调整图片对象的亮度以及对比度信息,更加突出字符部分,使得图片对象具有更好的识别效果,方便更快速更稳定的对图片对象进行分析,有助于第一内容的获取。
本发明还提供了一种解析PDF文档的装置,包括:
获取模块:获取PDF文档;
第一处理模块:提取PDF文档中的图片对象至空白底板,解析图片对象中的第一内容并按照第一排序算法排序;
第二处理模块:解析PDF文档中非图片对象的第二内容并按照第二排序算法排序;
排序模块:根据预设规则确认第一内容和第二内容的排序关系,当第一内容和第二内容存在重叠时,根据重叠区域调整图片对象和非图片对象的位置;
输出模块:输出解析结果。
本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述一种解析PDF文档的方法的步骤。
与现有技术相比,本发明的有益效果包括:
本发明通过将PDF文档中的图片对象与非图片对象先分离后解析,即将图片对象与非图片对象分离后分别进行内容识别,避免了PDF文档中因排版复杂、有多元素重叠而导致的文字识别率低的问题,有助于准确的提取内容信息,提高解析准确率;
本发明将图片对象提取至空白底板,避免了多张图片对象集中在同一个位置引起的叠放,以及解析后无法对文字内容排序的情况,不仅提高了解析效果,同时方便文字排序;
本发明提供的第一排序算法和第二排序算法均基于CPTN文字检测处理算法设计,通过基于第一排序算法对第一内容排序、第二排序算法对第二内容排序,并根据重叠区域调整图片对象和非图片对象的位置,使得排版的逻辑结构和格式不仅可以按照原文档的排版顺序输出,并且第一内容和第二内容不会出现重叠,提高了阅读性;
本发明当图片对象和非图片对象中的内容存在重叠时,对图片对象或非图片对象进行下移操作,实现输出的内容信息没有重叠覆盖,避免了因文字内容排版重叠引起的文字丢失问题,提高了文字识别率,同时,提升了阅读体验。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。
图1为本发明提供的一种解析PDF文档的方法的流程图;
图2为本发明实施例提供的解析前的PDF文档的文本图;
图3为本发明实施例提供的一种解析PDF文档的方法中图片对象解析的示意图;
图4为本发明实施例提供的一种解析PDF文档的方法中非图片对象解析的示意图;
图5为本发明实施例提供的一种解析后的PDF文档的文本图;
图6为本发明实施例提供的一种解析后的PDF文档的文本图;
图7为本发明提供的一种解析PDF文档的装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案以及优点更加清楚明白,下面结合附图和实施例对本发明作进一步详细说明,应当理解的是,此处所描述的具体实施方式仅是本发明的一种最佳实施例,仅用以解释本发明,并不限定本发明的保护范围,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在更加详细地讨论示例性实施例之前,应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作(或步骤)可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤;所述处理可以对应于方法、函数、规程、子例程、子程序等等。
为使本发明的内容更容易被清楚地理解,下面根据具体实施方式并结合附图,对本发明作出进一步详细的说明。
实施例:如图1所示,本说明书实施例提供了一种解析PDF文档的方法,包括:
步骤1,获取PDF文档;
步骤2,包括步骤201和步骤202;
步骤201,提取PDF文档中的图片对象至空白底板,解析图片对象中的第一内容并按照第一排序算法排序;
步骤202,解析PDF文档中非图片对象的第二内容并按照第二排序算法排序;
步骤3,根据预设规则确认第一内容和第二内容的排序关系,当第一内容和第二内容存在重叠时,根据重叠区域调整图片对象和非图片对象的位置;
步骤4,输出解析结果;
其中,第一内容包括第一文字块和第一文字块坐标,第一排序算法包括以下步骤:
根据第一文字块坐标确定第一文字块的中心点纵坐标;
选定一个第一文字块作为第一特定文字块,依次计算所有第一文字块的中心点纵坐标和第一特定文字块的中心点纵坐标的第一差值,将所有第一文字块按照第一差值从小到大排序,得到第一内容;
第二内容包括第二文字块和第二文字块坐标,第二排序算法包括以下步骤:
根据第二文字块坐标确定第二文字块的中心点纵坐标和中心点横坐标;
选定一个第二文字块作为第二特定文字块,依次计算所有第二文字块的中心点纵坐标和第二特定文字块的中心点纵坐标的第二差值绝对值,当第二差值绝对值小于第二阈值,判断第二文字块与第二特定文字块在同一行,将所有处于同一行的第二文字块存储至行文字块组;
依次计算行文字块组中各个第二文字块的中心点横坐标和第二特定文字块的中心点横坐标的第二差值,将行文字块组中各个第二文字块按照第二差值从小到大排序,得到文字行,完成行排序;
继续执行上述步骤,直至所有第二文字块完成行排序,得到第二内容。
实施中,选定待解析的PDF文档,根据PDF文档的元素类型识别PDF文档中的图片对象和非图片对象;新建一个空白底板,空白底板用于放置图片对象;使用pymupdf开源包解析并提取PDF文档中的图片对象至空白底板;利用OCR技术识别空白底板上的图片对象,提取得到第一内容。
需要说明的是,pymupdf开源包是一种轻量级的PDF工具包,支持直接解析PDF文档格式的原始文件,可以提取PDF文档中图片对象的内容信息和图片对象的坐标位置信息,支持逐页拆分文档、合并文档以及裁剪页面等操作。并且,pymupdf开源包支持在Windows(XP/SP2及以上版本)、Mac OSX和Linux、32位或64位等多平台运行,具有较佳的性能和高渲染质量。
实施中,pymupdf开源包解析后的图片对象一般有具体的高度值,根据空白底板与PDF文档页面的比例,对图片对象进行等比缩放,使得空白底板内的图片对象占据空白底板的比例等于图片对象占据PDF文档页面的比例;
优选地,空白底板为与PDF文档的页面等比例大小的空白底板。
通过对图片对象进行等比例缩放,简化了图像处理时并行处理的难度,提高了处理效率。
实施中,图片对象放置至空白底板时,对图片对象进行渲染处理。具体地,pymupdf开源包获取图片对象的mask参数值,根据mask参数值判断图片对象是否存在mask图层;当判断图片对象存在mask图层时,即图片对象之间有遮罩、叠放等情况,按照mask参数值对图片对象进行渲染,将图片对象中mask参数值为第一参数的区域设置为透明状态。其中,第一参数表示图片区域为透明状态时的参数。
实施中,pymupdf开源包提取出多个图片对象,多个图片对象包括水印图片和内容图片,其中,水印图片有部分区域覆盖在内容图片上方;水印图片覆盖在内容图片上方的区域部分mask参数值为第一参数,当多个图片对象传输至空白底板上,参考mask参数值进行渲染,水印图片覆盖在内容图片上方的区域部分被渲染为透明状态。
实施中,将图片对象提取至空白底板之后,PDF文档中的剩余部分为非图片对象,利用pymupdf开源包解析非图片对象,得到第二内容。
实施中,图片对象包括但不限于:背景、水印、底板和印章;图片对象的图片格式包括但不限于:bmp,jpg,png,tif,gif,pcx,tga,exif,fpx,svg,psd,cdr,pcd,dxf,ufo,eps,ai,raw,webp,avif和apng。
实施中,图片对象中的第一内容按照第一排序算法排序,第一排序算法用于将第一文字块按照对应的第一文字块坐标排序,实现对第一内容的排序。具体的,对图片对象进行OCR解析,提取得到第一文字块和第一文字块坐标,第一文字块坐标包括第一文字块的四个顶点坐标,依次记为:左下坐标(x10,y10)、右下坐标(x11,y10)、左上坐标(x10,y11)和右上坐标(x11,y11)。
基于第一文字块的四个顶点坐标,根据下列公式计算出第一文字块的中心点纵坐标y1a:
实施中,确定第一文字块A和第一文字块B的连接关系,根据上述公式计算出第一文字块A的中心点纵坐标Ay1a,计算出第一文字块B的中心点纵坐标B1ya,计算Ay1a和By1a的第一差值,按照差值从小到大的顺序对所有的第一文字块进行排序,得到第一内容。
需要说明的是,第一阈值可根据具体实际应用设置,在此不作限制。
实施中,非图片对象中的第二内容按照第二排序算法排序,第二排序算法用于将第二文字块按照对应的第二文字块坐标排序,实现对第二内容的排序。具体的,第二文字块坐标包括第二文字块的四个顶点坐标,依次记为:左下坐标(x0,y0)、右下坐标(x1,y0)、左上坐标(x0,y1)和右上坐标(x1,y1)。
基于第二文字块的四个顶点坐标,根据下列公式计算出第二文字块的中心点坐标(xa,ya):
实施中,确定第二文字块A和第二文字块B的连接关系,根据上述公式计算出第二文字块A的中心点坐标值(Axa,Aya),计算出第二文字块B的中心点坐标值(Bxa,Bya),计算Aya和Bya的第二差值绝对值,当Aya和Bya的第二差值绝对值小于第二阈值时,判断第二文字块A和第二文字块B在同一行。将其他第二文字块依次和第二文字块A比较,找到所有满足预设条件的第二文字块,组成行文字块组。
需要说明的是,第二阈值可根据具体实际应用设置,在此不作限制。
实施中,选取横坐标最小值对应的第二文字块作为第二特定文字块,依次计算行文字块组中各个第二文字块的中心点横坐标和第二特定文字块的中心点横坐标的第二差值,将所有第二文字块按照第二差值从小到大依次排序,即为输出顺序。
通过将图片对象和非图片对象进行分离解析,解决了PDF文档中图片对象与非图片对象出现重叠而导致的内容识别率较低的问题,通过分别解析图片对象和非图片对象,能准确识别重叠区域的文字内容,有助于准确的提取内容信息,提高整体的内容识别率;
将图片对象提取至空白底板,避免了多张图片对象集中在同一个位置引起的叠放,以及解析后无法对文字内容排序的情况,不仅提高了解析效果,同时方便文字排序。
同时,OCR图片识别技术可区域化的提取图片对象中的第一文字块和第一文字块坐标,方便还原PDF文档中第一内容的逻辑结构和格式,无需重复排版,并且识别精度高,识别速度快,提高了对图片对象区域的内容识别效率;并且,本发明提供的第一排序算法基于CPTN文字检测处理算法设计,将第一文字块按照坐标进行纵向排序,快速还原第一内容中所有第一文字块的顺序,按照原文档的排版顺序输出。
同时,本发明提供的第二排序算法基于CPTN文字检测处理算法设计,通过先将第二文字块排序为文字行并从左到右依次排序,避免了第二文字块排序过程中出现不同行的错位情况,保证了每一个文字行的排序的准确性。
在一些实施方式中,根据重叠区域调整图片对象和非图片对象的位置,包括以下步骤:
当图片对象上边界纵坐标小于非图片对象上边界纵坐标且大于非图片对象下边界纵坐标时,将图片对象下移第一距离,第一距离为图片对象上边界纵坐标和非图片对象下边界纵坐标的差值绝对值;
当非图片对象上边界纵坐标小于图片对象上边界纵坐标且大于图片对象下边界纵坐标时,将非图片对象下移第二距离,第二距离为非图片对象上边界纵坐标和图片对象下边界纵坐标的差值绝对值。
实施中,图片对象上边界纵坐标为py1,非图片对象上边界纵坐标为ny1,非图片对象下边界纵坐标为ny2,当图片对象上边界纵坐标py1小于非图片对象上边界纵坐标ny1且大于非图片对象下边界纵坐标ny2时,则判断图片对象排序在非图片对象之后,即第一内容排序在第二内容之后,将图片对象中的第一内容在原坐标的基础上向下移动,下移的距离为py1和ny2的差值绝对值。
当PDF文档中存在重叠区域时,通过图片对象和非图片对象的坐标信息判断需要下移的对象元素以及下移距离,并根据坐标信息计算出下移距离的最小值并进行更新,避免了排版重叠引起的文字丢失问题,提高了文字识别率,同时,提升了阅读体验。
在一些实施方式中,第一距离不大于文字行的高度;
和/或,第二距离不大于图片对象的高度。
实施中,第一内容排序在第二内容后面并且部分覆盖第二内容,获取覆盖区域文字行上边界坐标和下边界坐标,计算下边界坐标和上边界坐标的差值,即为第一内容下移的第一距离。作为优选,第一距离不大于文字行的高度。
通过图片对象和非图片对象的坐标信息可准确计算出下移对象的下移距离的最大值,不仅可精确识别文字内容,同时,避免了文字行之间的间距过大,排版更加精细,提高了阅读舒适度。
在一些实施方式中,预设规则包括:
确定文字行的中心点纵坐标;
将第一文字块的中心点纵坐标和文字行的中心点纵坐标按照从小到大进行列排序;
将第一文字块和文字行按照列排序进行排序,确认第一内容和第二内容的排序关系。
实施中,获取文字行的四个顶点坐标,其中,左上坐标记为(xn0,yn1),左下坐标记为(xn0,yn0),根据下列公式计算出文字行的中心点纵坐标yna:
将所有的第一文字块的中心点纵坐标和所有的文字行的中心点纵坐标依次排序,得到列排序;将第一文字块和文字行按照列排序的对应关系进行排序,完成第一内容和第二内容的排序。
在一些实施方式中,当所有第二文字块完成行排序后,第二排序算法还包括:
按照列排序,检测文字行的末端是否存在预设字符;
当文字行的末端存在预设字符,判断文字行是段落末行,文字行和已检测的文字行构成一个段落块。
实施中,预设字符为表示换行的字符,包括但不限于:连续空格、换行符等,具体的可根据实际情况设置,在此不做限定。
优选地,每个段落的段首增加段首格式。
通过对第二内容中的第二文字块进行分段设置,使得文档段落更加清晰,提高了文档的连贯性,更加方便阅读,提高了阅读舒适度。
在一些实施方式中,解析第二内容包括以下步骤:
若第二内容包括的字符编码为cid编码,提取unicode字符;
若第二内容包括的字符编码为非cid编码,提取第二内容对应的cid编码,根据cid编码与预设字体库中unicode字符的对应关系,提取unicode字符。
实施中,利用Pymupdf开源包识别非图片对象,当字符编码为cid编码时,在预设字体库内遍历查询cid编码,通过cid编码与预设字体库的对应关系,识别得到unicode字符。
当识别出非图片对象的字符编码为非cid编码时,将识别到的字符编码解析为cid编码,在预设字体库内遍历查询解析后的cid编码,通过cid编码与预设字体库的对应关系,识别得到unicode字符。
需要说明的是,预设字体库通过人工方式收集各个平台系统的常用字体以及相应的cmap(映射表类)映射,通过预设字体库的cmap映射,可以快速定位到字符编码对应的unicode字符。
在一些实施方式中,提取PDF文档中的图片对象至空白底板,还包括:提取图片对象的图片坐标,将图片对象按照图片坐标放置至空白底板。
实施中,通过pymupdf开源包提取PDF文档中图片对象的图片坐标,图片坐标为图片对象原始坐标值经过仿射变换后的坐标值,其中,仿射变换包括:平移(Translation)、缩放(Scale)、翻转(Flip)和旋转(Rotation)。
将图片对象按照图片坐标放置至空白底板,避免了同时提取多张图片对象时,多张图片对象集中在同一个位置引起的叠放,以及解析后无法对文字内容排序的情况,不仅提高了解析效果,同时方便文字排序。
在一些实施方式中,解析图片对象中的第一内容之前,还包括:对图片对象进行图像增强处理。
实施中,在对图片对象进行识别前,通过剪切、对比度变换、颜色变换方式对图片对象进行图像增强处理;图像增强处理后,再对图片对象进行识别,获取图片对象中的文字内容、坐标位置、尺寸大小等信息。
实施中,通过二值化将图片对象转换为黑白图像,对黑白图像进行闭运算处理以屏蔽图像中的干扰因素,再经过灰度线性变换增加图片对象的对比度,增强黑色和白色区域的反差,实现对图片对象增强处理。
通过图像增强处理后,可以调整图片对象的亮度以及对比度信息,更加突出字符部分,使得图片对象具有更好的识别效果,方便更快速更稳定的对图片对象进行分析,有助于第一内容的获取。
在一个具体的实施方式中,如图2所示,为解析前的PDF文档的文字内容,解析到PDF文档中包括楷体文字内容的图片对象和宋体文字内容的非图片对象两部分,并且两部分有重叠区域。
通过pymupdf开源包提取到图片对象以及图片对象对应的图片坐标,将图片对象提取到与PDF文档的页面等比例大小的空白底板,并按照图片坐标对应的位置放置,如图3所示;通过OCR技术识别空白底板上的图片对象,提取得到第一内容,其中,第一内容包括若干个第一文字块及其对应的第一文字块坐标。
OCR 技术是按照文字行提取内容信息,每一个第一文字块包括一整行的文字内容,只需要对图片对象中的第一文字块进行纵坐标的排序。如图3 所示,一个第一文字块包括一个方框内的文字内容,图片对象共包括有六行,通过OCR 技术识别得到六个第一文字块,分别确认每一个第一文字块的中心点纵坐标,选取中心点纵坐标最大的第一文字块作为第一特定文字块,依次计算其他五行的第一文字块的中心点纵坐标和第一特定文字块的中心点纵坐标的第一差值,将所有第一文字块按照第一差值从小到大排序,得到第一内容。
解析非图片对象的第二内容,其中,第二内容包括若干个第二文字块和对应的第二文字块坐标。每一个第二文字块包括一个文字或者一个标点符号。如图4所示,一个第二文字块包括一个方框内的文字内容。根据第二文字块坐标,先计算出处于同一行的第二文字块,再对行文字进行排序。
具体地,根据第二文字块坐标确定第二文字块的中心点纵坐标,选定“噫”字对应的第二文字块作为第二特定文字块,依次计算所有第二文字块的中心点纵坐标和第二特定文字块的中心点纵坐标的第二差值绝对值,当第二差值绝对值小于预设的第二阈值时,判断这个第二文字块与“噫”字在同一行,将所有处于同一行的第二文字块存储至行文字块组;再计算行文字块组包括的各个第二文字块的中心点横坐标和第二特定文字块的中心点横坐标的第二差值,将行文字块组中各个第二文字块按照第二差值从小到大排序,得到文字行,完成行排序;按照上述步骤依次计算,得到非图片对象包括的五个行文字。根据每一行的中心点纵坐标信息对五个行文字进行排序,得到非图片对象的第二内容。
将第一内容和第二内容按照原本的坐标放置到解析文档中,会有部分重合。根据坐标可计算出,图片对象上边界纵坐标小于非图片对象上边界纵坐标且大于非图片对象下边界纵坐标,将图片对象下移,非图片对象上边界纵坐标和非图片对象下边界纵坐标的差值绝对值即为图片对象的下移距离,下移后得到解析后的PDF文档内容,如图5所示。
在一个具体的实施方式中,将图2中的PDF文档解析得到图5展示的内容后,对图片对象解析出的第一内容进行排版,包括:先提取出第二内容的排版样式,排版样式包括:字体样式、字体大小以及行间距,将第一内容的排版样式转化为第二内容的排版样式。
具体地,提取图4中第二内容的排版样式:宋体、四号和18.75 磅倍行距;提取并解析第一内容的cid编码,通过cid编码和宋体的对应关系,将第一内容的楷体转换为宋体,原本的排序位置不变;判断第一内容中是否包括有换行符,当识别到有换行符时,删除换行符,后面的第一文字块依次前移填充;将第一内容的行间距转化为18.75 磅倍行距,完成对解析后的PDF文档的排版,如图6所示。
实施例:如图7所示,本说明书实施例还提供了一种解析PDF文档的装置,包括:
获取模块:获取PDF文档;
第一处理模块:提取PDF文档中的图片对象至空白底板,解析图片对象中的第一内容并按照第一排序算法排序;
第二处理模块:解析PDF文档中非图片对象的第二内容并按照第二排序算法排序;
排序模块:根据预设规则确认第一内容和第二内容的排序关系,当第一内容和第二内容存在重叠时,根据重叠区域调整图片对象和非图片对象的位置;
输出模块:输出解析结果。
实施中,获取模块选定待解析的PDF文档。
第一处理模块利用pymupdf开源包获取PDF文档中的图片对象,并放置至空白底板上,利用OCR技术识别空白底板上的图片对象,提取得到第一内容。优选地,空白底板为与PDF文档的页面等比例大小的空白底板。
第二处理模块利用pymupdf开源包处理识别非图片对象,得到第二内容。
排序模块将第一内容和第二内容按照预设规则排序,并对重叠区域进行位置的移动操作。
输出模块接收并输出排序模块输出的解析结果。
通过将图片对象和非图片对象进行分开处理,有利于解决PDF文档中常出现的多元素重叠问题,通过将图片对象和非图片对象进行分离解析,避免了图片对象和非图片对象因互相覆盖而导致的文字无法识别问题,提高了文字识别率。
实施例:本说明书实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述一种解析PDF文档的方法的步骤。
实施中,计算机可读存储介质包括任何用于存储信息的介质,比如:只读存储器,磁盘或光盘等。
以上所述之具体实施方式为本发明一种解析PDF文档的方法、装置和可读存储介质的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明之形状、结构所作的等效变化均在本发明的保护范围内。
Claims (10)
1.一种解析PDF文档的方法,其特征在于,包括:
步骤1,获取PDF文档;
步骤2,内容解析,包括步骤201和步骤202:
步骤201,提取所述PDF文档中的图片对象至空白底板,解析所述图片对象中的第一内容并按照第一排序算法排序;
步骤202,解析所述PDF文档中非图片对象的第二内容并按照第二排序算法排序;
步骤3,根据预设规则确认所述第一内容和所述第二内容的排序关系,当所述第一内容和所述第二内容存在重叠时,根据重叠区域调整所述图片对象和所述非图片对象的位置;
步骤4,输出解析结果;
其中,所述第一内容包括第一文字块和第一文字块坐标,所述第一排序算法包括以下步骤:
根据所述第一文字块坐标确定所述第一文字块的中心点纵坐标;
选定一个第一文字块作为第一特定文字块,依次计算所有第一文字块的中心点纵坐标和所述第一特定文字块的中心点纵坐标的第一差值,将所有所述第一文字块按照所述第一差值从小到大排序,得到所述第一内容;
所述第二内容包括第二文字块和第二文字块坐标,所述第二排序算法包括以下步骤:
根据所述第二文字块坐标确定所述第二文字块的中心点纵坐标和中心点横坐标;
选定一个第二文字块作为第二特定文字块,依次计算所有第二文字块的中心点纵坐标和所述第二特定文字块的中心点纵坐标的第二差值绝对值,当所述第二差值绝对值小于第二阈值,判断所述第二文字块与所述第二特定文字块在同一行,将所有处于同一行的所述第二文字块存储至行文字块组;
依次计算所述行文字块组中各个第二文字块的中心点横坐标和所述第二特定文字块的中心点横坐标的第二差值,将所述行文字块组中各个所述第二文字块按照所述第二差值从小到大排序,得到文字行,完成行排序;
继续执行上述步骤,直至所有所述第二文字块完成行排序,得到所述第二内容。
2.根据权利要求1所述的一种解析PDF文档的方法,其特征在于,所述根据重叠区域调整所述图片对象和所述非图片对象的位置,包括以下步骤:
当所述图片对象上边界纵坐标小于所述非图片对象上边界纵坐标且大于所述非图片对象下边界纵坐标时,将所述图片对象下移第一距离,所述第一距离为所述图片对象上边界纵坐标和所述非图片对象下边界纵坐标的差值绝对值;
当所述非图片对象上边界纵坐标小于所述图片对象上边界纵坐标且大于所述图片对象下边界纵坐标时,将所述非图片对象下移第二距离,所述第二距离为所述非图片对象上边界纵坐标和所述图片对象下边界纵坐标的差值绝对值。
3.根据权利要求2所述的一种解析PDF文档的方法,其特征在于,所述第一距离不大于所述文字行的高度;
和/或,所述第二距离不大于所述图片对象的高度。
4.根据权利要求1所述的一种解析PDF文档的方法,其特征在于,所述预设规则包括:
确定所述文字行的中心点纵坐标;
将所述第一文字块的中心点纵坐标和所述文字行的中心点纵坐标按照从小到大进行列排序;
将所述第一文字块和所述文字行按照所述列排序进行排序,确认所述第一内容和所述第二内容的排序关系。
5.根据权利要求4所述的一种解析PDF文档的方法,其特征在于,当所述所有所述第二文字块完成行排序后,所述第二排序算法还包括:
按照所述列排序,检测所述文字行的末端是否存在预设字符;
当所述文字行的末端存在所述预设字符,判断所述文字行是段落末行,所述文字行和已检测的所述文字行构成一个段落块。
6.根据权利要求1所述的一种解析PDF文档的方法,其特征在于,解析所述第二内容包括以下步骤:
若所述第二内容包括的字符编码为cid编码,提取unicode字符;
若所述第二内容包括的字符编码为非cid编码,提取所述第二内容对应的cid编码,根据所述cid编码与预设字体库中unicode字符的对应关系,提取unicode字符。
7.根据权利要求1所述的一种解析PDF文档的方法,其特征在于,所述提取所述PDF文档中的图片对象至空白底板,还包括:提取所述图片对象的图片坐标,将所述图片对象按照所述图片坐标放置至所述空白底板。
8.根据权利要求1所述的一种解析PDF文档的方法,其特征在于,解析所述图片对象中的第一内容之前,还包括:对所述图片对象进行图像增强处理。
9.一种解析PDF文档的装置,用于实现如权利要求1至8任一项所述一种解析PDF文档的方法,其特征在于,包括:
获取模块:获取PDF文档;
第一处理模块:提取所述PDF文档中的图片对象至空白底板,解析所述图片对象中的第一内容并按照第一排序算法排序;
第二处理模块:解析所述PDF文档中非图片对象的第二内容并按照第二排序算法排序;
排序模块:根据预设规则确认所述第一内容和所述第二内容的排序关系,当所述第一内容和所述第二内容存在重叠时,根据重叠区域调整所述图片对象和所述非图片对象的位置;
输出模块:输出解析结果。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述一种解析PDF文档的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211638998.9A CN115618847B (zh) | 2022-12-20 | 2022-12-20 | 一种解析pdf文档的方法、装置和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211638998.9A CN115618847B (zh) | 2022-12-20 | 2022-12-20 | 一种解析pdf文档的方法、装置和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115618847A CN115618847A (zh) | 2023-01-17 |
CN115618847B true CN115618847B (zh) | 2023-03-14 |
Family
ID=84879741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211638998.9A Active CN115618847B (zh) | 2022-12-20 | 2022-12-20 | 一种解析pdf文档的方法、装置和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115618847B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115830600B (zh) * | 2023-02-22 | 2023-05-26 | 杭州金诚信息安全科技有限公司 | 一种图文设计页面识别整理方法 |
CN116757165B (zh) * | 2023-08-09 | 2023-10-31 | 江苏中威科技软件系统有限公司 | 基于版式数据流文件底板将效果工具投影到ofd文件的方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010026895A (ja) * | 2008-07-23 | 2010-02-04 | Ricoh Co Ltd | 情報処理装置、画像形成装置、およびプログラム |
CN101923723B (zh) * | 2009-06-16 | 2012-11-28 | 汉王科技股份有限公司 | 实现电子文档显示的方法 |
CN102541826B (zh) * | 2010-12-27 | 2014-08-06 | 北大方正集团有限公司 | 文字块内容重组方法及装置 |
CN102591845B (zh) * | 2011-01-06 | 2014-06-04 | 北大方正集团有限公司 | 一种重叠文字的处理方法和装置 |
CN104063364A (zh) * | 2013-03-19 | 2014-09-24 | 福建福昕软件开发股份有限公司北京分公司 | 一种pdf文档识别方法 |
CN104268127B (zh) * | 2014-09-22 | 2018-02-09 | 同方知网(北京)技术有限公司 | 一种电子档版式文件阅读顺序分析的方法 |
FR3047001B1 (fr) * | 2016-01-21 | 2018-01-19 | Centre National De La Recherche Scientifique | Compose oxy-hydroxyde de titane et son procede de fabrication, electrode et catalyseur le comprenant. |
CN109871517B (zh) * | 2018-12-25 | 2023-04-25 | 东软集团股份有限公司 | 文字块排序方法、装置、存储介质及电子设备 |
CN110377559B (zh) * | 2019-06-17 | 2022-09-16 | 平安科技(深圳)有限公司 | 一种pdf文件数据提取方法、装置及存储介质 |
CN110334346B (zh) * | 2019-06-26 | 2020-09-29 | 京东数字科技控股有限公司 | 一种pdf文件的信息抽取方法和装置 |
CN111368511A (zh) * | 2020-02-28 | 2020-07-03 | 证通股份有限公司 | Pdf文档解析方法及装置 |
CN112417826B (zh) * | 2020-11-24 | 2021-07-02 | 济南智学承远信息技术有限公司 | Pdf在线编辑方法、装置、电子设备和可读存储介质 |
CN112434690A (zh) * | 2020-12-02 | 2021-03-02 | 上海三稻智能科技有限公司 | 动态解析文本图像特征现象的元素自动捕获理解方法、系统及存储介质 |
CN112861821B (zh) * | 2021-04-06 | 2024-04-19 | 刘羽 | 基于pdf文件解析的图谱数据还原方法 |
CN113361257B (zh) * | 2021-06-29 | 2022-10-11 | 深圳壹账通智能科技有限公司 | Pdf文档解析方法、系统、电子装置及存储介质 |
CN113850265A (zh) * | 2021-09-15 | 2021-12-28 | 深圳壹账通智能科技有限公司 | Pdf文档的解析方法、装置、电子设备及存储介质 |
-
2022
- 2022-12-20 CN CN202211638998.9A patent/CN115618847B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115618847A (zh) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115618847B (zh) | 一种解析pdf文档的方法、装置和可读存储介质 | |
CN111814722B (zh) | 一种图像中的表格识别方法、装置、电子设备及存储介质 | |
CN110766014B (zh) | 票据信息定位方法、系统及计算机可读存储介质 | |
CN110390269B (zh) | Pdf文档表格提取方法、装置、设备及计算机可读存储介质 | |
CN106156761B (zh) | 面向移动终端拍摄的图像表格检测与识别方法 | |
US8660356B2 (en) | Recognizing text at multiple orientations | |
JP5379085B2 (ja) | スキャンされた文書画像内の前景画素群の連結グループをマーキング種類に基づき分類する方法及びシステム | |
CN114299528B (zh) | 一种针对扫描文档的信息提取和结构化方法 | |
CN111461133B (zh) | 快递面单品名识别方法、装置、设备及存储介质 | |
US11823497B2 (en) | Image processing system and an image processing method | |
CN115063802A (zh) | 一种基于PSENet的圆形印章识别方法、设备及介质 | |
CN112241730A (zh) | 一种基于机器学习的表格提取方法和系统 | |
CN114663897A (zh) | 表格提取方法与表格提取系统 | |
CN112364834A (zh) | 一种基于深度学习和图像处理的表格识别的还原方法 | |
CN110135407B (zh) | 样本标注方法及计算机存储介质 | |
CN113158895A (zh) | 票据识别方法、装置、电子设备及存储介质 | |
CN114463767A (zh) | 信用证识别方法、装置、计算机设备和存储介质 | |
CN111126266A (zh) | 文本处理方法、文本处理系统、设备及介质 | |
CN114066868A (zh) | 一种表格图片数据解析方法、装置及存储介质 | |
JP2008108114A (ja) | 文書処理装置および文書処理方法 | |
CN113936137A (zh) | 一种去除图像型文本行检测区域重叠的方法、系统及存储介质 | |
CN116912857A (zh) | 手写体和印刷体文本分离方法及装置 | |
CN115311666A (zh) | 图文识别方法、装置、计算机设备及存储介质 | |
CN115019310A (zh) | 图文识别方法及设备 | |
CN111612045B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |