去除从双层电子文件中复制的文本中的空格的方法与系统的制作方法

文档序号:6335172阅读:187来源:国知局

专利名称::去除从双层电子文件中复制的文本中的空格的方法与系统的制作方法
技术领域
:本发明涉及一种去除从双层电子文件中复制的文本中的空格的方法与系统。
背景技术
:可移植文档格式(PortableDocumentFormat,PDF)的双层电子文件例如书籍、文件,是有图像层与文字层的PDF文件,图像层上显示原书例如纸书的版面,上面每一个字实际上是一个字形图像;文字层在图像层下面,并不显示出来,文字层中包含文件的电子版文本,通常是使用光学字符识别(OpticalCharacterRecognition,OCR)的方式获得。文字层的文本与图像层的字形图像按字对位,通常字符的左侧为对位基准侧。由于Acrobat或者Adobereader在处理文本复制功能时,字符之间的间隔并不是按照一行中是否真实存在空格符来生成复制的数据,而是根据字符的坐标确定字符间距,按照该间距判断字符间是否“需要”空格;即如果两个字在同一行,并且按照Acorbat的判断准则,这两个字之间的水平位置距离较远,这个时候选中本行文本,复制到剪贴板,查看剪贴板的文本,则在水平位置较远的相邻两个字符之间多出了原文没有的空格。这个空格就是由Acrobat或者Adobereader根据文字位置插入的多余空格。在插入了多余空格的情况下,字符组成的文本会失去原有的文字意义。图1是根据现有技术的从双层电子文件中复制的文本中存在多余空格以及该文本的原始状态的示意图。如图1所示,文本区域11的文本中包含若干单词,在插入了多余空格的情况下成为文本区域12所示的一个个离散的字母,这样会给使用者带来很多不便,例如影响阅读;又如无法利用计算机检索其中的单词。现有技术中,从双层电子文件中复制的文本中存在多余空格,对于该问题,目前尚未提出有效解决方案。
发明内容本发明的主要目的是提供一种去除从双层电子文件中复制的文本中的空格的方法与系统,用以解决现有技术中从双层电子文件中复制的文本中存在多余空格的问题。为解决上述问题,根据本发明的一个方面,提供了一种去除从双层电子文件中复制的文本中的空格的方法。本发明的去除从双层电子文件中复制的文本中的空格的方法包括从双层电子文件中复制相邻的两个字符,然后判断所述两个字符是否为空格符;在所述相邻的两个字符都不是空格符的情况下,检查复制得到的所述两个字符之间是否存在空格,若存在空格,则对所述双层电子文件文字层的所述两个字符中的至少一个字符向另一字符的方向拉伸。进一步地,从双层电子文件中复制相邻的两个字符之前还包括从所述双层电子文件的当前页中复制文本块;在所述文本块中的非空格符的字符一侧或两侧出现空格的情况下,在输出的所述文本块中标示出该空格。进一步地,从双层电子文件中复制相邻的两个字符包括根据所述双层电子文件的内核数据确定针对相邻两个字符的选择区域;从所述确定的选择区域中复制字符。进一步地,对所述两个字符中的至少一个字符向另一字符的方向拉伸之后还包括判断所述两个字符之间是否存在空格,若存在则在输出的这两个字符之间标示出该空格。进一步地,在输出的这两个字符之间标示出该空格之后,所述方法还包括对拉伸后的字符再次进行已执行的拉伸的操作。进一步地,所述双层电子文件的图像层与文字层的对位基准侧是字符第一侧;对所述双层电子文件文字层的所述两个字符中的至少一个字符向另一字符的方向拉伸包括将所述双层电子文件文字层的所述两个字符中的第一侧字符向第二侧拉伸。进一步地,在所述相邻的两个字符中的至少一个为空格符的情况下,重复执行从双层电子文件中复制相邻的两个字符及其后的步骤,并且对当前版面中的同一位置的两个字符不重复进行复制。进一步地,所述双层电子文件为可移植文档格式(PortableDocumentFormat)的文件。为解决上述问题,根据本发明的另一方面,提供了一种去除从双层电子文件中复制的文本中的空格的系统。本发明的去除从双层电子文件中复制的文本中的空格的系统包括复制模块,用于从双层电子文件中复制相邻的两个字符;判断模块,用于判断所述两个字符是否为空格符;检查模块,用于在所述相邻的两个字符都不是空格符的情况下,检查复制得到的所述两个字符之间是否存在空格;拉伸模块,用于若所述两个字符之间存在空格,则对所述双层电子文件文字层的所述两个字符中的至少一个字符向另一字符的方向拉伸。进一步地,所述复制模块还用于从所述双层电子文件的当前页中复制文本块;并且所述系统还包括输出模块,用于输出所述文本块以及在所述文本块中的非空格符的字符一侧或两侧出现空格的情况下,在输出的所述文本块中标示出该空格。进一步地,所述复制模块还用于根据所述双层电子文件的内核数据确定针对相邻两个字符的选择区域;从所述确定的选择区域中复制字符。进一步地,所述判断模块还用于在所述拉伸模块完成拉伸操作后,判断所述两个字符之间是否存在空格;所述输出模块还用于在所述拉伸模块完成拉伸操作后,若所述两个字符之间仍存在空格则输出这两个字符并且在输出的这两个字符之间标示出该空格。进一步地,所述拉伸模块还用于将所述双层电子文件文字层的所述两个字符中的第一侧字符向第二侧拉伸;其中,所述双层电子文件的图像层与文字层的对位基准侧是字符第一侧。根据本发明的技术方案,检查复制出的字符中是否存在多余空格,若存在则对字符拉伸,使Acrobat认为拉伸后的字符与相邻字符间的距离无需在复制字符之后插入空格,从而避免了多余空格的产生,使复制出的文本不包含多余空格,这样不致于影响用户对复制出的文本的使用。此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据现有技术的从双层电子文件中复制的文本中存在多余空格以及该文本的原始状态的示意图;图2是根据本发明实施例的去除从双层电子文件中复制的文本中的空格的方法的主要步骤的示意图;图3是根据本发明实施例的检测到多余空格的文本的示意图;图4是根据本发明实施例的去除多余空格的操作之后的文本的示意图;图5是根据本发明实施例的去除多余空格之后复制得到的文本的示意图;以及图6是根据本发明实施例的去除从双层电子文件中复制的文本中的空格的系统的主要模块示意图。具体实施例方式下面将参考附图并结合实施例,来详细说明本发明。图2是根据本发明实施例的去除从双层电子文件中复制的文本中的空格的方法的主要步骤的示意图。如图2所示,该方法主要包括如下的步骤S21至步骤S24。步骤S21从双层电子文件中复制相邻的两个字符。一个字符可以是拼音文字的一个字母,也可以是一个汉字或其他语言的一个单字,也可以是其他字符,包括各种标点符号、技术符号等。在本步骤中,具体可以是先根据双层电子文件的内核数据例如PDF的TouchUp文本,确定针对相邻两个字符的选择区域,再从确定的选择区域中复制字符。步骤S22判断复制的两个字符是否为空格符。如果其中至少一个为空格符,则返回步骤S21,这时在执行步骤S21时不重复地复制出另两个字符,即对当前版面中的同一位置的两个字符不重复进行复制;如果这两个字符都不是空格符,则进入步骤S23。步骤S23检查复制得到的两个字符之间是否存在空格。在本步骤中,查看复制得到的字符,检查其中是否包含有Acrobat添加的空格。该字符是在根据内核数据建立对应的选择区域中复制得到。如果存在空格,则进入步骤S24;否则返回步骤S21,不重复地复制出另两个字符。步骤S24对双层电子文件文字层的所述两个字符中的至少一个字符向另一字符的方向拉伸。文档一般是从左至右书写,因此拉伸的方法一般是增加字符的宽度。本步骤中的拉伸是在双层电子文件的文字层中进行,拉伸的量可以是文字层中字体尺寸衡量单位的某个倍数,也可以是字体宽度的百分比。在拉伸之后字符间距减小,这样Acrobat就不会判定这两个字符的间距过大,于是认为复制之后二者之间无需插入空格,从而避免了多余空格的产生。步骤S21之前可以先对文本块进行检查,大致了解该文本块被复制出之后会增加多少空格。为此,可以先从双层电子文件的当前页中复制文本块,在复制出的文本块中的非空格符的字符一侧或两侧出现空格的情况下,在输出的该文本块中标示出该空格。图3是根据本发明实施例的检测到多余空格的文本的示意图。如图3所示,在图像层中,方框31中包含一块文本,其中使用小方框标示出了多个字母,例如小方框32。在复制出之后,两个小方框32之间会出现多余空格。步骤S21之后可以是先由用户选定一块文本或指定一页文本,也可以是指定一个或多个双层电子文件。以指定一块文本为例,在步骤S24之后,可以继续处理该块文本的其他部分,即返回步骤S21,并且对于同一位置的两个字符不再次同时复制。可以是两两地复制字符,即每次复制的字符是前次复制的第二个字符及其后的一个字符,例如,在处理一段文本“WelcometoChina”时,在一次执行步骤S21时复制了“We”,则在再次执行步骤S21时复制“el”,以后各次执行步骤S21时依次复制“1(3”、“(0”、“0111”......等。此时如果当指定的文本处理完成,可以输出去除多余空格的结果,如图4所示,图4是根据本发明实施例的去除多余空格的操作之后的文本的示意图。从图4可以看出,在图像层中,方框41中的文本块内存在两种小方框,一种是方框42(图中示出了多个和方框42同样作用的方框,位于单词末尾附近),表示这里有一个正常的空格符;一种是方框43,方框43成对地出现,表示两个方框43之间被插入了一个多余空格。在输出去除多余空格的结果后,如果方框42的数量较少,用户可以接受,那么可以保存当前的处理结果;否则也可以继续处理,即对拉伸后的字符再次进行拉伸操作。具体可以是返回步骤21重新执行图2所示流程,也可以是在第一次执行该流程之后记录拉伸过的字符然后再次拉伸这些字符。如果双层电子文件的图像层与文字层的对位基准侧是字符左侧,则对于字符的拉伸操作,可以将该字符向右侧拉伸;反之则向左侧拉伸。当然也可以将字符同时向两侧拉伸,但这样会影响图像层与文字层的对位,如果这种影响能被接受,则可以考虑两侧拉伸。图5是根据本发明实施例的去除多余空格之后复制得到的文本的示意图。如图5所示,方框51中包含的文本块内进行了多余空格的去除操作,复制出该文本之后,仅存在两处多余空格,如椭圆52和椭圆53所示。对应于图4,去除多余空格之后,椭圆52和椭圆53所示的位置即为相邻两个方框43之间的位置。可以看出仍然存在的多余空格仅会出现在标点附近,这样的空格不会将单词拆开,因此对用户对复制出的文本的使用的影响较小,例如不会影响到用户检索某个单词。图6是根据本发明实施例的去除从双层电子文件中复制的文本中的空格的系统的主要模块示意图。如图6所示,去除从双层电子文件中复制的文本中的空格的系统60包括复制模块、判断模块、检查模块、拉伸模块。复制模块用于从双层电子文件中复制相邻的两个字符;判断模块,用于判断所述两个字符是否为空格符;检查模块,用于在所述相邻的两个字符都不是空格符的情况下,检查复制得到的所述两个字符之间是否存在空格;拉伸模块,用于若所述两个字符之间存在空格,则对所述双层电子文件文字层的所述两个字符中的至少一个字符向另一字符的方向拉伸。复制模块还可用于从所述双层电子文件的当前页中复制文本块;这样,去除从双层电子文件中复制的文本中的空格的系统50还可以包括输出模块,用于输出所述文本块以及在所述文本块中的非空格符的字符一侧或两侧出现空格的情况下,在输出的所述文本块中标示出该空格。复制模块还可用于根据双层电子文件的内核数据确定针对相邻两个字符的选择区域;从所述确定的选择区域中复制字符。判断模块还可以用于在拉伸模块完成拉伸操作后,判断所述两个字符之间是否存在空格,这样,所述输出模块还可用于在拉伸模块完成拉伸操作后,若所述两个字符之间仍存在空格则输出这两个字符并且在输出的这两个字符之间标示出该空格。拉伸模块还可用于将双层电子文件文字层的所述两个字符中的第一侧字符向第二侧拉伸;其中,双层电子文件的图像层与文字层的对位基准侧是字符第一侧。根据本发明的技术方案,检查复制出的字符中是否存在多余空格,若存在则对字符拉伸,使Acrobat认为拉伸后的字符与相邻字符间的距离无需在复制字符之后插入空格,从而避免了多余空格的产生,使复制出的文本不包含多余空格,这样不致于影响用户对复制出的文本的使用。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求一种去除从双层电子文件中复制的文本中的空格的方法,其特征在于,包括从双层电子文件中复制相邻的两个字符,然后判断所述两个字符是否为空格符;在所述相邻的两个字符都不是空格符的情况下,检查复制得到的所述两个字符之间是否存在空格,若存在空格,则对所述双层电子文件文字层的所述两个字符中的至少一个字符向另一字符的方向拉伸。2.根据权利要求1所述的方法,其特征在于,从双层电子文件中复制相邻的两个字符之前还包括从所述双层电子文件的当前页中复制文本块;在所述文本块中的非空格符的字符一侧或两侧出现空格的情况下,在输出的所述文本块中标示出该空格。3.根据权利要求1所述的方法,其特征在于,从双层电子文件中复制相邻的两个字符包括根据所述双层电子文件的内核数据确定针对相邻两个字符的选择区域;从所述确定的选择区域中复制字符。4.根据权利要求1所述的方法,其特征在于,对所述两个字符中的至少一个字符向另一字符的方向拉伸之后还包括判断所述两个字符之间是否存在空格,若存在则在输出的这两个字符之间标示出该空格。5.根据权利要求4所述的方法,其特征在于,在输出的这两个字符之间标示出该空格之后,所述方法还包括对拉伸后的字符再次进行已执行的拉伸的操作。6.根据权利要求1所述的方法,其特征在于,所述双层电子文件的图像层与文字层的对位基准侧是字符第一侧;对所述双层电子文件文字层的所述两个字符中的至少一个字符向另一字符的方向拉伸包括将所述双层电子文件文字层的所述两个字符中的第一侧字符向第二侧拉伸。7.根据权利要求1所述的方法,其特征在于,在所述相邻的两个字符中的至少一个为空格符的情况下,重复执行从双层电子文件中复制相邻的两个字符及其后的步骤,并且对当前版面中的同一位置的两个字符不再次同时复制。8.根据权利要求1至7中任一项所述的方法,其特征在于,所述双层电子文件为可移植文档格式的文件。9.一种去除从双层电子文件中复制的文本中的空格的系统,其特征在于,包括复制模块,用于从双层电子文件中复制相邻的两个字符;判断模块,用于判断所述两个字符是否为空格符;检查模块,用于在所述相邻的两个字符都不是空格符的情况下,检查复制得到的所述两个字符之间是否存在空格;拉伸模块,用于若所述两个字符之间存在空格,则对所述双层电子文件文字层的所述两个字符中的至少一个字符向另一字符的方向拉伸。10.根据权利要求9所述的系统,其特征在于,所述复制模块还用于从所述双层电子文件的当前页中复制文本块;并且所述系统还包括输出模块,用于输出所述文本块以及在所述文本块中的非空格符的字符一侧或两侧出现空格的情况下,在输出的所述文本块中标示出该空格。11.根据权利要求9所述的系统,其特征在于,所述复制模块还用于根据所述双层电子文件的内核数据确定针对相邻两个字符的选择区域;从所述确定的选择区域中复制字符。12.根据权利要求9所述的系统,其特征在于,所述判断模块还用于在所述拉伸模块完成拉伸操作后,判断所述两个字符之间是否存在空格;所述输出模块还用于在所述拉伸模块完成拉伸操作后,若所述两个字符之间仍存在空格则输出这两个字符并且在输出的这两个字符之间标示出该空格。13.根据权利要求9至12中任一项所述的系统,其特征在于,所述拉伸模块还用于将所述双层电子文件文字层的所述两个字符中的第一侧字符向第二侧拉伸;其中,所述双层电子文件的图像层与文字层的对位基准侧是字符第一侧。全文摘要本发明公开了一种去除从双层电子文件中复制的文本中的空格的方法与系统,以解决现有技术中从双层电子文件中复制的文本中存在多余空格的问题。该方法包括从双层电子文件中复制相邻的两个字符,然后判断所述两个字符是否为空格符;在所述相邻的两个字符都不是空格符的情况下,检查复制得到的所述两个字符之间是否存在空格,若存在空格,则对所述双层电子文件文字层的所述两个字符中的至少一个字符向另一字符的方向拉伸。使用本发明的技术方案,能够避免了多余空格的产生,使复制出的文本不包含多余空格,这样不致于影响用户对复制出的文本的使用。文档编号G06F17/22GK101980185SQ201010531159公开日2011年2月23日申请日期2010年10月29日优先权日2010年10月29日发明者兰荣春,周长岭,赵海涛申请人:方正国际软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1