有时我pdftotext
这样做会得到完美的文本。我认为这是因为实际的 unicode 文本数据直接嵌入在 PDF 本身中,并且只是简单地读出。
但其他时候(大约一半或更多的文档不仅仅是直接扫描的图像),它会导致~奇怪的符号~代替变音符号和重音符号,或者有时甚至是模糊的字母。
例如,这本约鲁巴语词典 PDF有这些问题。如果你运行这个:
pdftotext yoruba.pdf yoruba.txt
你最终会发现这些散落在各处的单词:
expected actual
-------- ------
lairotẹle lairot4ille
ikọsilẹ ikljlsil4il
logó logb
注意重音ó
变成了字母b
。但这并不意味着文档中的每个 ó 都变成 abẹ
。许多人都会这样,但不是全部。也一样4il
。 许多人都会这样,可能所有人都会这样。 大多数时候(我的感觉是)更模糊的重音符号/变音符号ẹ
会转换成陌生的字符或字符序列。
这是为什么?是 OCR 的问题吗?还是做PDF 中是否真的嵌入了纯文本(即它不是扫描到图像的文档)?然而,它却不知何故没有被正确解码。我想知道这个问题的答案,这样至少我知道这是 OCR 问题还是编码/解码问题。
如果这是编码问题,那就很有趣了。那么我的问题是,我是否可以告诉pdftotext
他们使用一些晦涩难懂的解码技术?或者其他什么。
我之所以提到这一点,部分原因是我最近发现一些网页是用 或 编码的ucs2
,latin1
有些甚至用了一些奇怪的windows2255
或某种编码。所以我不得不修改编码/解码以正确提取 HTML 文档中的文本。我想知道在这种情况下,同样的情况是否也适用于 PDF。
另一个存在此问题的文件是纳瓦霍语字典。我不知道这是 OCR 问题还是编码问题。另一个奇怪的文档是“Forgotten Books 编写的祖鲁-英语词典”(我会链接到它,但直接下载,而不是在浏览器中呈现)。如果您复制/粘贴文本,每个字母之间会以看似随机的方式相隔 1 或 2 个空格。我不知道为什么,希望能有更好的理解。