我一直在尝试使用各种程序来呈现多语言pdf(希伯来语/英语词典)机器可读。 QPDF(以及几乎所有其他程序)将文本呈现为乱码。我设置了--decode-level=all
没有效果。
这里可能有什么问题?
答案1
如果没有看到那个 PDF,我不能说太多,但有一些基础知识:
PDF 包含对象,某些对象包含 Postscript 简化变体的流,该变体将字形放置在页面上。 (您可以通过在文本编辑器中打开 PDF 来查看对象,如果您解压缩流,例如使用mutool
,您也可以在文本编辑器中查看流)。
将其转换回原始文本确实很困难(我认为这就是您所说的“机器可读”的意思),因为任何此类尝试都必须假设渲染应用程序如何工作。如果渲染应用程序只是按照字形在原始文本中的顺序放置字形,您可以尝试将字形重新映射到字符,然后按此顺序输出字符。
如果渲染程序做了更复杂的事情,例如因为您有两种具有不同阅读方向的语言,则此类尝试将会失败。
因此,如果您确实需要它,则必须仔细查看 PDF 的工作原理,并编写自定义程序将其转换回文本。