一种pdf文档的文本提取方法和装置的制造方法

文档序号:9579234阅读:263来源:国知局
一种pdf文档的文本提取方法和装置的制造方法【
技术领域
】[0001]本发明属于阅读和数据加工
技术领域
,具体涉及一种PDF文档的文本提取方法和目.ο【
背景技术
】[0002]随着数字出版技术的快速发展,越来越多的出版机构开始以数字形式,即电子文档形式发行图书。目前,在编辑、加工和印刷的过程中,这些图书的电子文档是由排版软件(例如方正书版或方正飞腾)所创建,排版后导出大样文件用于印刷。由于大样文件只能用于印刷,不能用于电子阅读,因此,一般使用排版软件提供的工具将大样文件转换为便携文件(PortableDocumentFormat,PDF)用于电子阅读。[0003]图1为采用排版软件导出的PDF文档示意图,图2为采用排版软件导出的PDF文档的排版空间的示意图,图3为采用现有方法提取的由排版软件导出的TOF电子文件的文本示意图。如图1至图3所示,由于排版软件的编码系统与国际通用的编码系统不一致,造成大样文件中的字符(例如:英文字母、数字、符号等)转换为PDF文档后,这些字符被转换为全角文字,使得将PDF文档手动拷贝到电子文档中时英文单词的排版空间之间没有空余空间,甚至还有重叠(如图2所示),然而电子阅读应用是根据字符排版空间之间的间隔来判断空格,全角字符的情况下,英文内容会连接在一起(如图3所示),使得PDF文档中提取文本的准确性和可靠性差,在电子阅读的过程中一方面不利于电子文档的检索,另一方面用户需要对提取的文本进行手动编辑,这种操作费时费力。【
发明内容】[0004]有鉴于此,本发明提出了一种PDF文档的文本提取方法和装置,使得从排版软件导出来的PDF文档中提取出来的字符(例如:英文、数字、符号等)内容不会连接在一起,提高PDF文档的文本提取的准确性和可靠性。[0005]—方面,本发明提供了一种PDF文档的文本提取方法,所述方法包括:根据PDF文档中各字符的显示空间获得所述各字符的排版空间;判断相邻字符的排版空间之间的间隔是否大于第一预设阈值,若是,则在所述相邻字符的排版空间之间插入空格。[0006]进一步地,所述根据PDF文档中各字符的显示空间获得所述各字符的排版空间包括:获取PDF文档中各字符的显示空间;计算所述显示空间中各字符的栅格区域;增大所述栅格区域后获取所述各字符的排版空间。[0007]进一步地,所述PDF文档的排版方式为横版,所述栅格区域为显示空间中各字符的像素宽度,所述像素宽度包括像素宽度左边界和像素宽度右边界,增大所述栅格区域包括:将所述像素宽度左边界向左增大第二预设阈值;以及将所述像素宽度右边界向右增大第三预设阈值;进一步地,所述PDF文档的排版方式为竖版,所述栅格区域为显示空间中各字符的像素高度,所述像素高度包括像素高度上边界和像素高度下边界,增大所述栅格区域包括:将所述像素高度上边界向上增大第四预设阈值;以及将所述像素高度下边界向下增大第五预设阈值。[0008]进一步地,在判断相邻字符的排版空间之间的间隔是否大于第一预设阈值之前,所述方法还包括:判断当前字符的排版空间前为空,若是,则判断所述当前字符为行首,在所述当前字符的排版空间之前不插入空格。[0009]另一方面,本发明提供了一种PDF文档的文本提取装置,所述装置包括:排版空间获取模块,用于根据PDF文档中各字符的显示空间获得所述各字符的排版空间;第一判断模块,用于判断相邻字符的排版空间之间的间隔是否大于第一预设阈值,若是,则在所述相邻字符的排版空间之间插入空格。[0010]进一步地,所述排版空间获取模块包括:显示空间获取单元,用于获取PDF文档中各字符的显示空间;计算单元,用于计算所述显示空间中各字符的栅格区域;增大单元,用于增大所述栅格区域后获取所述各字符的排版空间。[0011]进一步地,所述PDF文档的排版方式为横版,所述栅格区域为显示空间中各字符的像素宽度,所述像素宽度包括像素宽度左边界和像素宽度右边界,所述增大单元包括:第一增大子单元,用于将所述像素宽度左边界向左增大第二预设阈值;以及第二增大子单元,用于将所述像素宽度右边界向右增大第三预设阈值。[0012]进一步地,所述PDF文档的排版方式为竖版,所述栅格区域为显示空间中各字符的像素高度,所述像素高度包括像素高度上边界和像素高度下边界,所述增大单元包括:第三增大子单元,用于将所述像素高度上边界向上增大第四预设阈值;以及第四增大子单元,用于将所述像素高度下边界向下增大第五预设阈值。[0013]进一步地,所述装置还包括:第二判断模块,用于判断当前字符的排版空间前为空,若是,则判断所述当前字符为行首,在所述当前字符的排版空间之前不插入空格。[0014]本发明提供的PDF文档的文本提取方法和装置,通过TOF文档中各字符的显示空间获得各字符的排版空间,通过PDF文档中相邻字符的排版空间之间的间隔是否大于第一预设阈值来判断是否需要在相邻字符之间插入空格,避免了采用排版软件导出PDF文档后提取的文本中英文、数字或符号等字符连接在一起的现象,提高了PDF文档的文本提取的准确性和可靠性。【附图说明】[0015]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:图1为采用排版软件导出的PDF文档示意图;图2为采用排版软件导出的PDF文档的排版空间的示意图;图3为采用现有方法提取的由排版软件导出的TOF电子文件的文本示意图;图4为本发明第一实施例提供的PDF文档的文本提取方法的流程图;图5为本发明第一实施例提供的方法中获得各字符的排版空间的示意图;图6为采用本发明第一实施例提供的方法对PDF文档中的文本进行提取的结果示意图;图7为本发明第二实施例提供的PDF文档的文本提取装置的结构图。【具体实施方式】[0016]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。[0017]本发明实施例提供的PDF文档的文本提取方法和装置,可以用于从现有的排版软件导出的PDF文档中提取文本,所述现有的排版软件包括但不限制于:方正书版、方正维思或方正飞腾等,该方法能够解决现有排版软件导出的PDF文档中提取出的字符(该字符例如为:阿拉伯数目字、英文字母、标点符号、特殊符号)连接在一起的问题,从而提高文本提取的准确性和可靠性,方便用户进行电子文档检索并且不需要用户对提取的文本进行手动编辑,增强了用户体验。[0018]需要说明的是,本发明实施例提供的PDF文档包括横版PDF文档和竖版PDF文档,由于常见的英文PDF文档为横版,因此,本发明实施例将以横版PDF文档的文本提取为例进行说明,对于竖版PDF文档的文本提取可参考横版PDF文档的文本提取进行理解,本发明实施例将不再赘述。[0019]图4为本发明第一实施例提供的PDF文档的文本提取方法的流程图,下面结合图4对所述方法进行详述,如图4所示,所述方法包括:步骤11、根据PDF文档中各字符的显示空间获得所述各字符的排版空间。[0020]在本步骤中,PDF文档为现有排版软件导出的文件,字符包括该PDF文档中的阿拉伯数字、英文字母、标点符号、特殊符号等,通过现有排版软件导出的PDF文档中的字符为全角字符,各字符占用2个字符位置。各字符的显示空间为各字符的黑色像素所占据的空间,各字符的排版空间为排版时候字符的两个光标之间的位置,即排版软件中一个字符所占据的空间。[0021]优选的,步骤11中根据PDF文档中各字符的显示空间获得所述各字符的排版空间可包括:步骤111、获得PDF文档中各字符的显示空间。[0022]具体地,可以从TrueType(TrueType是由Apple公司和Microsoft公司联合提出的一种新型数学形描述技术。它用数学函数描述字体轮廓外形,含有字形构造、颜色填充、数字描述函数等指令)中根据编码从PDF文档获取各字符的矢量图,当然,也可通过现有的其他方法获得PDF文档中各字符的显示空间。[0023]步骤112、计算所述显示空间中各字符的像素宽度。[0024]在本步骤中,可以先获取字符的矢量数据,由于每种字体的格式不尽相同,因此可以用FreeType(是一个可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType,OpenType,Typel,CID,CFF,WindowsFON/FNT,XllPCF等)开源项目获取各字符的矢量数据,该矢量数据为一包含(x,y)的数组,再从该数组中获取最小值xmin和最大值xmax即得到了各字符的像素宽度。如图5中所示字母“g”的xmin和xmax之间的距离width即为字母“g”的像素宽度。[0025]步骤113、增大所述像素宽度后得到所述各字符的排版空间。[0026]在本步骤中,所述像素宽度包括像素宽度左边界(xmin)和像素宽度右边界(xmax),具体地,增大所述像素宽度可通过将所述像素宽度左边界向左增大第二预设阈值(如图5中bearingXl),以及将所述像素宽度右边界向右增大第三预设阈值(如图5中bearingX2)来实现,从而得到各字符的排版空间,如图5中advance所示的宽度。其中,所述第二预设阈值可以等于所述第三预设阈值也可以不等于所述第三预设阈值。[0027]步骤1当前第1页1 2 
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1