首页> 中国专利> 一种PDF文档的文本提取方法和装置

一种PDF文档的文本提取方法和装置

摘要

本发明公开了一种PDF文档的文本提取方法和装置,所述方法包括:根据PDF文档中各字符的显示空间获得所述各字符的排版空间;若当前字符的排版空间与前一字符的排版空间间隔的距离大于第一预设阈值时,在所述当前字符的排版空间之前插入空格。本发明避免了采用现有排版软件导出PDF文档后提取的文本中英文字符连接在一起的现象,提高了PDF文档的文本提取的准确性和可靠性。

著录项

  • 公开/公告号CN105335346A

    专利类型发明专利

  • 公开/公告日2016-02-17

    原文格式PDF

  • 申请/专利号CN201510754036.3

  • 发明设计人 楼永植;

    申请日2015-11-09

  • 分类号G06F17/25;

  • 代理机构

  • 代理人

  • 地址 100193 北京市海淀区东北旺西路8号5号楼三层

  • 入库时间 2023-12-18 14:11:39

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-10-28

    未缴年费专利权终止 IPC(主分类):G06F17/25 专利号:ZL2015107540363 申请日:20151109 授权公告日:20181204

    专利权的终止

  • 2018-12-04

    授权

    授权

  • 2016-03-16

    实质审查的生效 IPC(主分类):G06F17/25 申请日:20151109

    实质审查的生效

  • 2016-02-17

    公开

    公开

说明书

技术领域

本发明属于阅读和数据加工技术领域,具体涉及一种PDF文档的文本提取方法和装置。

背景技术

随着数字出版技术的快速发展,越来越多的出版机构开始以数字形式,即电子文档形式发行图书。目前,在编辑、加工和印刷的过程中,这些图书的电子文档是由排版软件(例如方正书版或方正飞腾)所创建,排版后导出大样文件用于印刷。由于大样文件只能用于印刷,不能用于电子阅读,因此,一般使用排版软件提供的工具将大样文件转换为便携文件(PortableDocumentFormat,PDF)用于电子阅读。

图1为采用排版软件导出的PDF文档示意图,图2为采用排版软件导出的PDF文档的排版空间的示意图,图3为采用现有方法提取的由排版软件导出的PDF电子文件的文本示意图。如图1至图3所示,由于排版软件的编码系统与国际通用的编码系统不一致,造成大样文件中的字符(例如:英文字母、数字、符号等)转换为PDF文档后,这些字符被转换为全角文字,使得将PDF文档手动拷贝到电子文档中时英文单词的排版空间之间没有空余空间,甚至还有重叠(如图2所示),然而电子阅读应用是根据字符排版空间之间的间隔来判断空格,全角字符的情况下,英文内容会连接在一起(如图3所示),使得PDF文档中提取文本的准确性和可靠性差,在电子阅读的过程中一方面不利于电子文档的检索,另一方面用户需要对提取的文本进行手动编辑,这种操作费时费力。

发明内容

有鉴于此,本发明提出了一种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为本发明第一实施例提供的PDF文档的文本提取方法的流程图;

图5为本发明第一实施例提供的方法中获得各字符的排版空间的示意图;

图6为采用本发明第一实施例提供的方法对PDF文档中的文本进行提取的结果示意图;

图7为本发明第二实施例提供的PDF文档的文本提取装置的结构图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。

本发明实施例提供的PDF文档的文本提取方法和装置,可以用于从现有的排版软件导出的PDF文档中提取文本,所述现有的排版软件包括但不限制于:方正书版、方正维思或方正飞腾等,该方法能够解决现有排版软件导出的PDF文档中提取出的字符(该字符例如为:阿拉伯数目字、英文字母、标点符号、特殊符号)连接在一起的问题,从而提高文本提取的准确性和可靠性,方便用户进行电子文档检索并且不需要用户对提取的文本进行手动编辑,增强了用户体验。

需要说明的是,本发明实施例提供的PDF文档包括横版PDF文档和竖版PDF文档,由于常见的英文PDF文档为横版,因此,本发明实施例将以横版PDF文档的文本提取为例进行说明,对于竖版PDF文档的文本提取可参考横版PDF文档的文本提取进行理解,本发明实施例将不再赘述。

图4为本发明第一实施例提供的PDF文档的文本提取方法的流程图,下面结合图4对所述方法进行详述,如图4所示,所述方法包括:

步骤11、根据PDF文档中各字符的显示空间获得所述各字符的排版空间。

在本步骤中,PDF文档为现有排版软件导出的文件,字符包括该PDF文档中的阿拉伯数字、英文字母、标点符号、特殊符号等,通过现有排版软件导出的PDF文档中的字符为全角字符,各字符占用2个字符位置。各字符的显示空间为各字符的黑色像素所占据的空间,各字符的排版空间为排版时候字符的两个光标之间的位置,即排版软件中一个字符所占据的空间。

优选的,步骤11中根据PDF文档中各字符的显示空间获得所述各字符的排版空间可包括:

步骤111、获得PDF文档中各字符的显示空间。

具体地,可以从TrueType(TrueType是由Apple公司和Microsoft公司联合提出的一种新型数学形描述技术。它用数学函数描述字体轮廓外形,含有字形构造、颜色填充、数字描述函数等指令)中根据编码从PDF文档获取各字符的矢量图,当然,也可通过现有的其他方法获得PDF文档中各字符的显示空间。

步骤112、计算所述显示空间中各字符的像素宽度。

在本步骤中,可以先获取字符的矢量数据,由于每种字体的格式不尽相同,因此可以用FreeType(是一个可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType,OpenType,Type1,CID,CFF,WindowsFON/FNT,X11PCF等)开源项目获取各字符的矢量数据,该矢量数据为一包含(x,y)的数组,再从该数组中获取最小值xmin和最大值xmax即得到了各字符的像素宽度。如图5中所示字母“g”的xmin和xmax之间的距离width即为字母“g”的像素宽度。

步骤113、增大所述像素宽度后得到所述各字符的排版空间。

在本步骤中,所述像素宽度包括像素宽度左边界(xmin)和像素宽度右边界(xmax),具体地,增大所述像素宽度可通过将所述像素宽度左边界向左增大第二预设阈值(如图5中bearingX1),以及将所述像素宽度右边界向右增大第三预设阈值(如图5中bearingX2)来实现,从而得到各字符的排版空间,如图5中advance所示的宽度。其中,所述第二预设阈值可以等于所述第三预设阈值也可以不等于所述第三预设阈值。

步骤12、判断当前字符的排版空间前是否为空,若为空,则判断所述当前字符为行首,在所述当前字符的排版空间之前不插入空格,若不为空,则执行步骤13。

在本步骤中,在获得各字符的排版空间之后,判断当前字符是否为行首,如果当前字符为行首,则将为行首的字符直接提取出来,不在其之前插入空格,如果当前字符不为行首,则需要判断当前字符的排版空间与前一字符的排版空间之间的间隔是否大于第一预设阈值,如果两个相邻字符的排版空间之间的间隔满足预设条件,则在该两个相邻字符的排版空间之间插入空格。

步骤13、判断相邻字符的排版空间之间的间隔是否大于第一预设阈值,若大于第一预设阈值,则执行步骤14,若不大于第一预设阈值,则在当前字符的排版空间之前不插入空格。

在本步骤中,各字符的排版空间包括排版空间左边界和排版空间右边界,通过计算当前字符排版空间的左边界和前一字符排版空间的右边界之间的距离,来判断相邻两字符之间的排版空间的间隔是否满足预设条件,如果满足预设条件,则执行步骤14在当前字符的排版空间之前插入空格,如果不满足预设条件,则在当前字符的排版空间前不插入空格。

步骤14、在所述当前字符的排版空间之前插入空格。

对PDF文档中的文本进行提取时文本以数组形式进行保存,当相邻两个字符的排版空间的间隔满足预设条件时,在前一字符的后面和当前字符的前面之间插入空格字符,该空格字符将前一字符和当前字符连接起来。

如图6所示为采用本发明第一实施例提供的方法对PDF文档中的文本进行提取的结果示意图,该PDF文档为背景技术中如图1所示的采用排版软件导出来的PDF文档,从图6中可以看出,采用本发明第一实施例提供的方法提取出来的文本正确的显示了PDF文档中的内容,避免了背景技术中图3所示的各字符连接在一起的问题,从而提高了文本提取的准确性和可靠性,方便用户进行电子文档检索并且不需要用户对提取的文本进行手动编辑,增强用户体验。

需要说明的是,上述实施例是以横版PDF为例进行说明的,当PDF文档为竖版时,则根据PDF文档中各字符的显示空间获得各字符的排版空间可通过以下步骤来实现:首先获得PDF文档中各字符的显示空间;其次计算显示空间中各字符的像素高度,所述像素高度包括像素高度上边界和像素高度下边界;最后,将所述像素高度上边界向上增大第四预设阈值以及将所述像素高度下边界向下增大第五阈值后得到各字符的排版空间。其中,第四预设阈值可以等于第五预设阈值,也可以不等于第五预设阈值。

且在判断相邻字符的排版空间之间的间隔是否大于第一预设阈值时,通过计算当前字符排版空间的上边界和前一字符排版空间的下边界之间的距离,来判断相邻两字符之间的排版空间的间隔是否满足预设条件,如果满足预设条件,则在相邻字符的排版空间之间插入空格。

图7为本发明第二实施例提供的PDF文档的文本提取装置的结构图,下面结合图7对所述方法进行详述,如图7所示,所述装置包括排版空间获取模块21和第一判断模块22。

排版空间获取模块21用于根据PDF文档中各字符的显示空间获得所述各字符的排版空间,第一判断模块22用于判断相邻字符的排版空间间隔的距离大于第一预设阈值,若是,则在所述相邻字符的排版空间之间插入空格。

优选的,排版空间获取模块21包括显示空间获取单元211、计算单元212和增大单元213。

其中,显示空间获取单元211用于获取PDF文档中各字符的显示空间,计算单元212用于计算所述显示空间中各字符的栅格区域,增大单元213用于增大所述栅格区域后得到所述各字符的排版空间。

在本实施例中,所述PDF文档的排版方式为横版,所述栅格区域为显示空间中各字符的像素宽度,所述像素宽度包括像素宽度左边界和像素宽度右边界,增大单元213包括第一增大子单元2131和第二增大子单元2132。

其中,第一增大子单元2131用于将所述像素宽度左边界向左移动第二预设阈值,第二增大子单元2132用于将所述像素宽度右边界向右移动第三预设阈值。优选的,所述第二预设阈值与所述第三预设阈值相同,或者所述第二预设阈值与所述第三预设阈值不相同。

在本实施例中,优选的,所述装置还包括第二判断模块23,用于判断当前字符的排版空间前为空,若是,则判断当前字符为行首,在所述当前字符的排版空间之前不插入空格。

优选的,在本发明的另一实施例中,所述PDF文档的排版方式为竖版,所述栅格区域为显示空间中各字符的像素高度,所述像素高度包括像素高度上边界和像素高度下边界,所述增大单元包括第三增大子单元和第四增大子单元(未图示)。

第三增大子单元用于将所述像素高度上边界向上增大第四预设阈值;以及第四增大子单元,用于将所述像素高度下边界向下增大第五预设阈值。第四预设阈值可以等于第五预设阈值,也可以不等于第五预设阈值。

本发明实施例提供的PDF文档的文本提取装置,通过PDF文档中各字符的显示空间获得各字符的排版空间,根据PDF文档中相邻字符的排版空间之间的间隔是否大于第一预设阈值来判断是否需要在相邻字符之间插入空格,避免了采用现有排版软件导出PDF文档后提取的文本中字符连接在一起的现象,提高了PDF文档的文本提取的准确性和可靠性。

可以理解,本发明是用过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和保护范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求的范围内的实施例都属于本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号