使用 pdftotext 将 PDF 转换为文本时,我可以修改编码吗?

使用 pdftotext 将 PDF 转换为文本时,我可以修改编码吗?

有时我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他们使用一些晦涩难懂的解码技术?或者其他什么。

我之所以提到这一点,部分原因是我最近发现一些网页是用 或 编码的ucs2latin1有些甚至用了一些奇怪的windows2255或某种编码。所以我不得不修改编码/解码以正确提取 HTML 文档中的文本。我想知道在这种情况下,同样的情况是否也适用于 PDF。

另一个存在此问题的文件是纳瓦霍语字典。我不知道这是 OCR 问题还是编码问题。另一个奇怪的文档是“Forgotten Books 编写的祖鲁-英语词典”(我会链接到它,但直接下载,而不是在浏览器中呈现)。如果您复制/粘贴文本,每个字母之间会以看似随机的方式相隔 1 或 2 个空格。我不知道为什么,希望能有更好的理解。

相关内容