PDF单词粘连

       所谓“PDF单词粘连”,就是某些文本型的PDF文件,当用Adobe Reader(或其它任何能打开PDF文件的软件)打开浏览时,看到的内容没有任何异常。但是当从里面复制英文段落时,对于英文部分得到是一串连在一起的英文字母,英文单词之间的空格都丢失了。无论粘贴对象是Word还是UltraEdit或记事本,都是一样的结果。对于这样的PDF文件,不论用什么PDF浏览器,诸如Adobe Reader、FoxitReader还是什么Apabi或CajViewer。这样的PDF文件虽然不影响浏览,但是不能对英文内容创建索引,所以也不能检索。

产生单词粘连的原因

       单词粘连的原因是字符的宽度信息不正确。在PDF内部,没有通常意义上的“空格”来分隔单词,单词之间的空格是靠字符之间的距离来判断并添加的,在执行判断时,需要使用字符的宽度信息,这个信息来自于PDF中对字体的描述,而不是我们在页面上看到的字符的实际宽度,在正常字体中,宽度信息应比实际宽度大一些,大多少没有统一的标准,所有出现单词粘连问题的PDF文件中,都是宽度信息比实际宽度大很多。如下图中所示,蓝色区域是字符"e"的宽度信息,它比"e"的实际宽度要大很多,以宽度信息是无法界定在"e"和后面的"v"之间应添加一个空格的。

修复结果

       如下图中的页面,在修复之前复制得到的是一串连在一起的字母。而修复之后呢,我们得到的是清晰的单词。

修复之前复制得到的结果,可以看到每一行中所有的单词都是连成一串,不具备可读性。

这是修复之后复制得到的结果,可以看到所有的单词都被正确地用空格隔开,可以进行阅读和建立索引。

修复策略

        在修复的过程,有一条基本原则是,不能破坏原始的版面,即修复后的PDF文件在浏览时与原始PDF文件有相同的呈现效果,另外在修复 过程不需要人为干预,软件自动判断字体是否存在问题,对于存在问题的字体,根据问题现象分类进行修复,包括调整字体和版面,然后输出正确的文件。为了保证修复不破坏原始PDF文件的版面,每个文件修复完成后,都会与原始文件进行比较,以确认是否在修复过程导致文件被破坏,并产生一个日志文件保存每个文件的结果。

修复要求

       PDF文件在修复之前不能存在乱码问题,原因是在判断一个字体是否是存在问题时,需要使用字符的正确编码,如果编码不正确,则修复结果是不可预期的。是否存在乱码问题及修复过程请浏览PDF乱码修复

样例文件

[原始文件][修复结果]
版权声明 北京博鸿捷讯科技有限公司,京公网安备 11010802035060 号京ICP备08002511号-2 2007. All Rights Reserved