如何让“pdftotext”以可读编码输出文本?

如何让“pdftotext”以可读编码输出文本?

我使用 .txt 文件将 PDF 文件转换为 txt 文件pdftotext。举个例子,我有一个句子“这是关于……的功能相关性的第一个研究”,注意“first”中的 f;当我通过 GATE 处理这个句子时,我将“first”扭曲为“ï�rst”。另外,在“蛋白质从附加型转染的 HEK293EBNA 细胞中分离出来,并通过 a 上的亲和层析进行纯化”中,一些包含字符的单词看起来像 f,但它不是 f 也被扭曲了“蛋白质从附加型转染的 HEK293EBNA 细胞中分离出来并纯化”通过亲和色谱法在“a”上进行。

如何pdftotext以可读的编码输出文本?

答案1

请注意,在您粘贴的文本中,“first”中的“fi”和“affinity”中的“ffi”是连字(多个字符组合成一个字形)。据推测,pdftotext将每个连字打印为单个字符,而您用来阅读文本的工具不支持该字符。

作为一个超级用户问题建议,试试这个:

pdftotext -enc ASCII7 input.pdf output.txt

这应该可以防止pdftotext逐字打印连字,强制将其扩展为 ASCII 字符。

答案2

由于我已经在 Python 中将 pdf 转换为文本,因此我使用简单的 Python 命令对 pdf 文本进行后处理:

# efficient -> 
# efficient
import unicodedata
pdf_text = unicodedata.normalize("NFKC", pdf_text)  

相关内容