2014-08-29 21 views
2

示例PDF页面:https://db.tt/qRcF000k修复PDF与读取字符

这是样品从页的文件,其中复制的文本显示在我最喜欢的读者SumatraPDF(mupdf)只是同在Adobe Acrobat问号。但我的主要问题是,我无法搜索这个文件,因此,我也不能索引它。

OTOH,xpdf中的pdftotext提取正确的文本。
在Adobe Acrobat中,如果我使用“作为格式化文本复制”,正确的文本会写入剪贴板,但我仍然无法从Acrobat搜索。
另外,如果我打开Firefox的内置PDF阅读器中的链接页面,我可以正确地复制文本。

可以Ghostscript的可能被指示纠正这个问题,我无法描述不同的则是“乱码”?

回答

1

的PDF文件使用非标准编码和无ToUnicode CMap的子集字体。所以不,你不能让Ghostscript'正确'这个文件。

事实上,我看不出有什么东西可以从中提取出合理的文本,事实上我的Acrobat版本(Pro X和Reader XI)不能复制有意义的文本,也没有看到“复制为格式化文本'菜单项,你能告诉我在哪里可以找到它吗?

但是,我注意到PDF文件实际上是由Ghostscript(版本9.14)创建的,所以可能你的意思是'从一个不同的输入文件开始,我没有给你,我可以生成一个PDF文件文本可以被复制',我只能说'我不知道',它取决于原始输入文件中的内容。

+1

*我什么都看不到怎么都不可能,从这个*提取明智的文本 - 在部分* 9.10提取的文本内容*您不能使用“官方”的信息,既不在PDF结构(如概述[ISO 32000-1](http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDF32000_2008.pdf))也不在字体文件本身中(没有标准名称,也没有映射到Unicode)的。但是,一个有教养的猜测是可能的,因为字体字符('C65','C66',...)的(非标准)名称包含相应字符的ASCII码(对于来自ASCII范围的字符,是)。 – mkl 2014-08-29 08:16:48

+0

感谢@KenS,这里是从原始文档链接到提取的页面:[sample_page2.pdf](https://db.tt/OASKBSC3)。 “Copy with Formatting”命令在Acrobat XI的选定文本上显示为[上下文菜单](http://i.imgur.com/tGjeTkH.png),可能在Acrobat X中不可用。 – theta 2014-08-29 10:17:44

+0

这是一个新的对我来说:-)它在Acrobat X中可用,但我从未注意到它。我必须猜测,Acrobat正在查看字形名称(例如/ C65),并确定字形名称的数字部分是ASCII(或可能是UTF8)字符代码,就像mkl上面所述。这当然是一种启发式的方式,很可能会失败。我的答案仍然存在,Ghostscript不能'纠正'这个文件。要做到这一点,必须重新编码字体(我们尽量不要这样做),然后说谎编码,或者发明一个ToUnicode。两者都是一个非常糟糕的主意。 – KenS 2014-08-29 11:17:17