一种识别pdf文件中的空格的方法

文档序号:6491034阅读:1146来源:国知局
一种识别pdf文件中的空格的方法【专利摘要】本发明涉及一种识别PDF文件中的空格的方法。该方法包括:步骤1:遍历PDF文件,记录各对相邻字符之间的距离;步骤2:确定各对相邻字符之间的距离中的最小值h;步骤3:用各对相邻字符之间的距离减去h,得到各对相邻字符之间的相对距离;步骤4:依次判断各对相邻字符之间的相对距离是否小于预知的空格宽度,是则该对相邻字符之间的空隙不是空格,否则,该对相邻字符之间的空隙包括空格。本发明能提高相邻字符之间是否存在空格的判断准确率。【专利说明】—种识别PDF文件中的空格的方法【
技术领域
】[0001]本发明涉及识别PDF文件中的字符的【
技术领域
】,特别是涉及一种识别PDF文件中的空格的方法。【
背景技术
】[0002]在将PDF文件转换为其他格式(如WORD、TXT等格式)的文件时,都要对PDF文件中的字符进行识别,尤其是要对相邻字符间的空格进行判断,从而顺利地组词和断句。[0003]PDF文件中,相邻字符间空隙的产生有两个原因,一是因为存在空格所以产生空隙,二是因为版面设置了字符间距所以产生空隙。现有的识别PDF文件中的空格的技术,是判断每对相邻字符之间的距离是否小于预知的空格宽度,是则判断该对相邻字符之间不存在空格,否则判断该对相邻字符间存在空格,进而在转换后的文件中在该对相邻字符之间设置空格。[0004]现有技术的缺点在于:当PDF文件中的字符间距设置得过大,例如其大于空格宽度时,该技术会将所有只存在字符间距而没有空格的空隙全部判断为存在空格,这样就会造成组词和断句的大量错误,严重影响格式转换的质量。一个简单的示例如图1所示,该图中由两个单词“Character”和“spacing”组成了连贯的“Characterspacing”词组,但仅在“Character”最后的“r”字符和“spacing”中的“s”字符之间存在空格(该空隙实际上是一个空格与一个字符间距的叠加),其余的相邻字符之间的空隙全部为字符间距,但是由于该字符间距要大于空格宽度,因而利用现有技术识别后,这个词组将在转换后的文件中变成包括16个字母字符和15个空格的字符串“Characterspacing”,从而造成严重的转换失误。【
发明内容】[0005]本发明所要解决的技术问题是提供一种识别PDF文件中的空格的方法,能提高相邻字符之间是否存在空格的判断准确率。[0006]本发明解决上述技术问题的技术方案如下:一种识别PDF文件中的空格的方法,该方法包括:[0007]步骤1:遍历所述TOF文件,记录各对相邻字符之间的距离;[0008]步骤2:确定各对相邻字符之间的距离中的最小值h;[0009]步骤3:用各对相邻字符之间的距离减去h,得到各对相邻字符之间的相对距离;[0010]步骤4:依次判断各对相邻字符之间的相对距离是否小于预知的空格宽度,是则该对相邻字符之间的空隙不是空格,否则,该对相邻字符之间的空隙包括空格。[0011]本发明的有益效果是:本发明通过便利PDF文件,记录各对相邻字符之间的距离,进而确定各对相邻字符之间的距离中的最小值h,将其作为字符间距的标准,这是因为,相邻字符间的空隙只能为一个字符间距组成,或者由一个字符间距与一个以上的空格组成,因而字符间距h是相邻字符间的距离的最小值。本发明用各对相邻字符之间的距离减去h,得到各对相邻字符之间的相对距离,该相对距离或者小于空格宽度,这是该对相邻字符之间不存在空格的情形,或者不小于空格宽度,这是该对相邻字符之间存在空格的情形。因此,本发明通过依次判断各对相邻字符之间的相对距离是否小于预知的空格宽度,即可剔除相邻字符之间的空隙为字符间距的情形,准确确定各对相邻字符之间的空隙是否为空格,从而大大提高相邻字符之间是否存在空格的判断准确率。[0012]在上述技术方案的基础上,本发明还可以做如下改进:[0013]进一步,在所述步骤4之后,还包括步骤5:将二者之间的空隙包括空格的相邻字符称为包含空格的相邻字符;用各对所述包含空格的相邻字符之间的相对距离除以所述空格宽度,将得到的商值的整数部分作为该对所述包含空格的相邻字符之间的空格的数量。【专利附图】【附图说明】[0014]图1为字符间距过大的PDF文件的示意图;[0015]图2为本发明提出的识别TOF文件中的空格的方法的流程图。【具体实施方式】[0016]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。[0017]图2为本发明提出的识别PDF文件中的空格的方法的流程图。这里,PDF是PortableDocumentFormat的缩写,意为便携文件格式,是一种电子文件格式,PDF文件指的是采用PDF格式的电子文件。本发明中,PDF文件中的字符可以为字母、数字、汉字、空格、标点等一切可以采用的字符形式。[0018]如图2所示,该方法包括:[0019]步骤201:遍历PDF文件,记录各对相邻字符之间的距离。[0020]本步骤中的“遍历”是一种计算机运算形式,指的是沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。遍历的方法以及上述的“树”的概念属于计算机领域的公知常识,在此不做赘述。[0021]本步骤中,遍历PDF文件的方法为:对PDF文件中的每个字符都进行一次访问,且仅做一次访问。[0022]PDF文件中的每对相邻字符之间都有一定的空隙,空隙的大小因字符间距以及是否存在空格的不同而有一定差异,而在每个PDF文件中,空格宽度都是已知的,因而相邻字符之间的距离(也就是空隙的大小)就仅与字符间距的设置有关。本步骤在进行空格的识别之前,要记录所有相邻字符之间的距离,从而为步骤202确定字符间距做准备。[0023]步骤202:确定各对相邻字符之间的距离中的最小值h。[0024]相邻字符之间的空隙只有如下两种来源:一是由一个字符间距构成该空隙,二是由一个字符间距与一个以上的空格叠加构成该空隙。因此,在步骤201确定了所有相邻字符之间的距离的基础上,本步骤可以从中找出相邻字符之间的距离的最小值h,并且,h即为该PDF文件中设置的字符间距,也就是说,该PDF文件中,二者之间的距离为h的一对或多对相邻字符,其二者之间的空隙仅由一个字符间距组成,而没有空格的存在。[0025]步骤203:用各对相邻字符之间的距离减去h,得到各对相邻字符之间的相对距离。[0026]在上述的相邻字符之间的空隙的两种来源的基础上,本步骤用各对相邻字符之间的距离减去h,得到的差值(即各对相邻字符之间的相对距离)或者为零,或者为正整数倍的空格宽度。值得注意的是,考虑到不同种类的字符之间的字符间距可能有较小的差异,上述的差值为零的情形,可以扩展到差值为绝对值接近零且远小于空格宽度的值,上述的差值为整数倍的空格宽度的情形,可以扩展到差值为正整数倍的空格宽度加上或者减去一极小值的情形,该极小值指的是接近零且远小于空格宽度的正值。[0027]步骤204:依次判断各对相邻字符之间的相对距离是否小于预知的空格宽度,是则该对相邻字符之间的空隙不是空格,否则,该对相邻字符之间的空隙包括空格。[0028]在步骤203的基础上,本步骤判断各对相邻字符之间的相对距离是否小于预知的空格宽度,如果是,则意味着该对相邻字符之间的空隙仅由一个字符间距构成,因而可判断该对相邻字符之间的空隙不是空格,否则,意味着该对相邻字符之间的空隙由一个字符间距与一个以上的空格构成,因而可判断该对相邻字符之间的空隙包括空格,这里的“包括”意味着该空隙还包括一个字符间距。[0029]在本步骤执行结束之后,即可确定该PDF文件中所有的空格,从而在进行文件格式的转换时,在有空格的位置设置空格,保证转换质量。[0030]由此可见,本发明通过便利PDF文件,记录各对相邻字符之间的距离,进而确定各对相邻字符之间的距离中的最小值h,将其作为字符间距的标准,这是因为,相邻字符间的空隙只能为一个字符间距组成,或者由一个字符间距与一个以上的空格组成,因而字符间距h是相邻字符间的距离的最小值。本发明用各对相邻字符之间的距离减去h,得到各对相邻字符之间的相对距离,该相对距离或者小于空格宽度,这是该对相邻字符之间不存在空格的情形,或者不小于空格宽度,这是该对相邻字符之间存在空格的情形。因此,本发明通过依次判断各对相邻字符之间的相对距离是否小于预知的空格宽度,即可剔除相邻字符之间的空隙为字符间距的情形,准确确定各对相邻字符之间的空隙是否为空格,从而大大提高相邻字符之间是否存在空格的判断准确率。[0031]步骤204确定了PDF文件中包括空格的位置,但步骤201至204还不能确定相邻字符之间的空格的数量,因而在上述的步骤204之后,还可以包括确定相邻字符之间的空格数量的步骤205:将二者之间的空隙包括空格的相邻字符称为包含空格的相邻字符;用各对包含空格的相邻字符之间的相对距离除以空格宽度,将得到的商值的整数部分作为该对包含空格的相邻字符之间的空格的数量。[0032]步骤205中,用商值的整数部分作为该对包含空格的相邻字符之间的空格的数量,而不是用商值作为该对包含空格的相邻字符之间的空格的数量,也是因为考虑到不同种类的字符之间的字符间距有较小的差异,该商值在整数部分之外,还可能包括小数部分。[0033]利用本发明对图1示例中的空格进行判断,结果为仅在“Character”最后的“r”字符和“spacing”中的“s”字符之间存在空格,因而格式转换的结果就为“Characterspacing”,与PDF文件所要表示的内容相同。[0034]由此可见,本发明具有以下优点:[0035](I)本发明通过便利PDF文件,记录各对相邻字符之间的距离,进而确定各对相邻字符之间的距离中的最小值h,将其作为字符间距的标准,这是因为,相邻字符间的空隙只能为一个字符间距组成,或者由一个字符间距与一个以上的空格组成,因而字符间距h是相邻字符间的距离的最小值。本发明用各对相邻字符之间的距离减去h,得到各对相邻字符之间的相对距离,该相对距离或者小于空格宽度,这是该对相邻字符之间不存在空格的情形,或者不小于空格宽度,这是该对相邻字符之间存在空格的情形。因此,本发明通过依次判断各对相邻字符之间的相对距离是否小于预知的空格宽度,即可剔除相邻字符之间的空隙为字符间距的情形,准确确定各对相邻字符之间的空隙是否为空格,从而大大提高相邻字符之间是否存在空格的判断准确率。[0036]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。【权利要求】1.一种识别PDF文件中的空格的方法,其特征在于,该方法包括:步骤1:遍历所述PDF文件,记录各对相邻字符之间的距离;步骤2:确定各对相邻字符之间的距离中的最小值h;步骤3:用各对相邻字符之间的距离减去h,得到各对相邻字符之间的相对距离;步骤4:依次判断各对相邻字符之间的相对距离是否小于预知的空格宽度,是则该对相邻字符之间的空隙不是空格,否则,该对相邻字符之间的空隙包括空格。2.根据权利要求1所述的方法,其特征在于,在所述步骤4之后,还包括步骤5:将二者之间的空隙包括空格的相邻字符称为包含空格的相邻字符;用各对所述包含空格的相邻字符之间的相对距离除以所述空格宽度,将得到的商值的整数部分作为该对所述包含空格的相邻字符之间的空格的数量。【文档编号】G06F17/22GK103810148SQ201210455707【公开日】2014年5月21日申请日期:2012年11月14日优先权日:2012年11月14日【发明者】周美玲申请人:福建福昕软件开发股份有限公司北京分公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1