清理 pdftotext 字体问题

6 pdf ascii special-characters conversion

我用来pdftotext制作 PDF 文档的 ASCII 版本(用 LaTeX 制作),因为协作者更喜欢 MS Word 中的简单文档。

\n\n

我看到的纯文本版本看起来不错,但经过​​仔细检查,f 字符似乎经常被错误转换,具体取决于后面的字符。例如,fi 和 fl 通常似乎成为一个特殊字符,我将尝试将其粘贴到此处:\xef\xac\x81 和 \xef\xac\x82。

\n\n

清理 pdftotext 输出的最佳方法是什么?我认为sed可能是正确的工具,但我不确定如何检测这些特殊字符。

\n

小智 3

默认情况下,pdftotext输出 unicode (UTF-8) 数据。如果您的终端或文本编辑器不支持 UTF-8,如您所注意到的,诸如“fi”和“fl”(可以在 unicode 中表示为单个字符)之类的连字将会出现奇怪的情况。

简单的修复方法是告诉pdftotext输出 ASCII 而不是 unicode:

pdftotext -enc ASCII7 input.pdf output.txt
Run Code Online (Sandbox Code Playgroud)

这应该会产生干净的 ASCII 输出,从而无需事后手动清理它。