使用非标准字符编码搜索PDF


19

当您复制文本时,某些PDF文件会产生垃圾(“ mojibake ”)(即使它们呈现为OK)。这样就无法搜索它们(无论您搜索的是什么都不匹配的垃圾)。

有人有简单的解决方法吗?

例子:

  1. TEAC TV手册EU2816STF(在Windows和Mac上均在Adobe Reader中产生上述问题,但在Mac上的Preview中工作正常)
  2. Leadtek Winfast PVR2手册(FTP链接;在Mac上的Preview中也有问题)
  3. Swann电视调谐器卡手册(FTP链接;在Mac上的“预览”中也有问题)
  4. Phonedisc许可协议(来自现已废止的DTMS
  5. 麦格理IFP季度基金回顾
  6. BAN-TACS小型企业手册(存档版本)
  7. 2004年复活节复活传单(也来自档案馆)

我正在使用Windows的Adobe Reader(最新版本)-也许使用其他查看器可能会有所帮助?我正在寻找Windows的免费解决方案。开源会更好。

编辑:“多价提取文本”工具的文档很好地总结了为什么会出错,包括:(引用的文档最后修改于2006年1月)

  • 文本可能没有Unicode映射。PDF Type 3字体通常没有,并且TeX DVI的字符没有Unicode等效项。
  • Unicode编码可能有问题。Open Office将某些字符映射为相同的Unicode,从而导致外观字母掉落并加倍。

我猜在这些情况下,最终的解决方案是对字体中的每个字形进行OCR运算,以确定其真正的字符。请注意,这比OCR处理嘈杂的扫描文档要容易,因为可以使用字形的确切形状(因为它是“矢量”图像,所以分辨率无限大)。


使用clipbrd.exe(请参阅mydigitallife.info/2008/11/06/…),您可以看到剪贴板上的内容。那给你什么?
Arjan

@Arjan van Bentem:它给了我与粘贴到记事本中时完全相同的垃圾。
休·艾伦

有关格式的任何详细信息?我在Mac上,但我假设Windows会告诉您某些内容是图像还是文本,然后对于文本,也许还可以揭示有关编码的信息?
Arjan

对于电视手册示例:在Mac上的Adobe Reader 8.1.2中存在相同的问题,但在Mac的Preview中复制或搜索文本没有问题。其文档属性显示字体的“编码:自定义”(请参见img.skitch.com/20100318-827uckkb5i326eta291f3qig3u.png)。其他PDF文档显示的是“ Encoding:Ansi”或“ Roman”之类的东西,而在Mac上的Adobe Reader中则没有任何问题(例如adobe.com/education/pdf/type_primer.pdf生成img.skitch.com/20100318-tbyjrny9bsg684eqhr7b3au7fb.png)。
Arjan

1
另外,pdftextonline.com无法从电视手册或Phonedisc文档中获取文本(请勿尝试其他文件)。但是发送到Gmail并以HTML格式查看确实适用于电视手册(就像“预览”对该文档没有问题一样)...
Arjan 2010年

Answers:


3

福昕阅读器,也许吗?

对于它的价值,我只是检查链接到您的Safari 4.0.4在Mac OS X 10.6.2的PDF,虽然有一些Engrish,它完美呈现,没有任何屏幕上的“垃圾”的PDF。也许您遇到Unicode问题(在Windows上比Mac OS更为常见)?


屏幕上没有垃圾-当我复制一些文本时,它在剪贴板中。尝试时对您会发生什么?
休·艾伦

@Hugh:功能􏰃这是一台遥控彩色电视机。V可以预设来自VHF,UHF频段或有线频道的100个节目。can它可以调谐电缆通道。by通过其菜单驱动系统,非常容易控制电视。has它具有3个用于外部设备(例如计算机,视频,视频游戏,音频设备等)的Euroconnector插座
Alex

@休:子弹不能正确复制,其余的是。您具体对哪个部分/页面/段落有疑问,我将尝试一下?
Alex

所有的。我正在使用Windows的Adobe Reader。我只是更新到了最新版本,没有帮助。+1感谢您提供的信息。我猜Adobe Reader有一个OSX不共享的错误。
休·艾伦

4
我尝试了Foxit Reader,它有同样的问题。它的安装程序也确实很麻烦,想要安装工具栏,修改您的主页等:(
Hugh Allen 2010年

3

解决此问题的最简单方法是使用内置的PDF阅读插件最新版本的Google Chrome浏览器中打开文件。然后,您可以使用Chrome的搜索功能查找文本,然后复制粘贴即可正常工作。


2

对于电视手册示例:在Mac上的Adobe Reader 8.1.2中存在相同的问题,但使用Mac的Preview复制或搜索文本没有问题。另外,将其发送到Gmail帐户,然后选择“查看”,然后选择“纯HTML”将显示文本。但是Adobe Reader不喜欢它。

其文档属性显示字体的“编码:自定义”。另一个文档显示“ Encoding:Ansi”或“ Roman”之类的东西,在Mac上的Preview或Adobe Reader中都没有问题:

在此处输入图片说明

在此处输入图片说明

但是,LeadtekSwann示例在Mac上和Gmail中的Preview中也都出现问题,并且都显示“ Encoding:Identity-H”。该Phonedisc测试失败也与“编码:自定义”。

令人困惑且不一致,但是在一些Adobe论坛上,我找到了另一个说明示例“ Encoding:Custom”(强调我的意思)的以下解释:

在查看PDF内部之后,发现没有可用的编码信息(在PDF和嵌入字体数据中均不存在)来导出显示在文档页面上的字符/字形的含义。

字体实际上都是嵌入的,但是所有编码信息都已被删除。这是PDF的典型示例,该语法在语法上完全符合PDF规范,但是在制作PDF的过程中丢弃了有关文本含义的重要信息。据我所知,要恢复编码信息将非常困难。

这并不能解释为什么当Adobe Reader失败时,即使使用“编码:自定义”,Mac的Preview(显然还有Infix)也可以处理某些示例。确切的字体恰巧出现在计算机本身上时,也许预览没有问题?还是只是猜测一种编码,而这种编码恰好适用于部分而非全部文档?

不管是什么原因造成的:如果无法通过Google Docs或Gmail传递,那么最简单(但远非如此简单)的解决方法也许确实是另存为TIFF然后执行OCREvernote之类的服务可能会即时执行(它会在图像上执行OCR;我怀疑它将在PDF上执行OCR)。


-1

文件1的下载对我来说失败了,文件2我可以使用xpdf(一个快速且开源的pdf查看器)打开。我猜它不能处理表单,但是对于纯文本和grafic,我更喜欢它的快速启动时间。


1
问题不在于“打开” PDF,也不在于“以快速的启动时间打开”。相反,这是关于无法从渲染的页面复制n'paste文本片段。因此,您的答案可能是一个不错的答案,但不适合这个问题。
Kurt Pfeifle

-2

不幸的是,这无济于事。PDF文档实际上不包含任何字母,但是它们包含字母的形状。换句话说,与其阅读其他字母并将其绘制在屏幕上的Adobe Reader一样,不如其他PDF阅读应用程序那样,它只会绘制文件中编码的矢量图形

但是,某些PDF阅读器随附了允许通过使用文本识别来分析形状并恢复文本的软件。它的工作原理与您扫描纸质打印文本并使用ABBYY FineReader之类的软件将其转换回文本一样,但是由于无限高质量的矢量绘图,结果通常要比扫描文档好得多。

通过欺骗Adobe Reader,可以防止某些文档被转换为文本。例如,可以以几种重叠的形状绘制字母,以使它们在视觉上看起来仍然相同,而文本识别软件将无法识别文本。您的文件就是这种保护的一个例子。

一种方法是将文档打印到图像中,然后让文本识别软件对其进行识别。图像的高分辨率会提高质量。但是,这种方法并不是很方便。


2
PDF文档实际上不包含任何字母 -对于大多数非扫描文档而言并非如此;参见en.wikipedia.org/wiki/Portable_Document_Format#Text
Arjan 2010年

谢谢。有趣的信息。我一直都没有关于PDF文本的信息。但是,亚历山大提供的文档似乎没有嵌入文本。或者,那里使用的字体也可能具有怪异的字符编码,即它们与典型的ASCII编码不对应。
谢尔盖·别洛佐洛夫

2
如果只是形状,如何从PDF复制文本?您的观点是正确的-不会在PDF中对其进行栅格化(除非它来自扫描的源),但包括文本数据。但是,字体(通常)也被嵌入,从而允许对包含的文本进行矢量渲染。
Alex
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.