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

Lan*_*nce 5 encoding pdf ocr unicode character-encoding

有时当我pdftotext这样做时会产生完美的文本。我认为这是因为实际的 unicode 文本数据直接嵌入到 PDF 本身中,并且只需读出即可。

\n\n

但其他时候(大约一半或更多的文档不只是直接扫描的图像)它会导致〜奇怪的字形〜代替诸如变音符号和重音符号之类的东西,有时甚至是看起来模糊的字母。

\n\n

例如,这个约鲁巴语词典 PDF就存在这些问题。如果你运行这个:

\n\n
pdftotext yoruba.pdf yoruba.txt\n
Run Code Online (Sandbox Code Playgroud)\n\n

你最终会看到这些词散布在各处:

\n\n
expected     actual\n--------     ------\nlairot\xe1\xba\xb9le    lairot4ille\nik\xe1\xbb\x8dsil\xe1\xba\xb9      ikljlsil4il\nlog\xc3\xb3         logb\n
Run Code Online (Sandbox Code Playgroud)\n\n

请注意,重音符号\xc3\xb3变成了字母b。但并不是每个 \xc3\xb3 都变成了 doc 中的 ab。许多人这样做,但不是全部。与\xe1\xba\xb9a相同4il。许多人都变成这样,可能是所有人。大多数时候(我的感觉是)更晦涩的重音符号/变音符号\xe1\xba\xb9会被转换成陌生的字符或字符序列

\n\n

为什么是这样?是 OCR 的东西吗?或者PDF实际上是否嵌入了纯文本(即它不是图像的扫描文档)?然而,它在某种程度上没有被正确解码。我想知道这个问题的答案,所以至少我知道这是 OCR 问题或编码/解码问题。

\n\n

如果这是一个编码问题,那就很有趣了。那么我的问题是,我可以告诉pdftotext使用一些晦涩的解码技术吗?或者是什么。

\n\n

我提出这个问题的部分原因是我最近发现了一些网页是用 或 编码的ucs2latin1有些甚至是用一些奇怪的windows2255或某种编码编码的。因此,我必须修改编码/解码才能正确提取 HTML 文档中的文本。我想知道在这种情况下同样的情况是否也适用于 PDF。

\n\n

另一个遇到此问题的文档是纳瓦霍词典。我不知道这是 OCR 的问题还是编码的问题。另一个奇怪的文档是“Zulu-English Dictionary by Forgotten Books”(我会链接到该词典,但直接下载而不是在浏览器中呈现)。如果复制/粘贴文本,每个字母会以看似随机的方式彼此间隔 1 或 2 个空格。我不知道为什么,想有更好的感觉。

\n