从 PDF 中提取文本时出现异常字体

Unusual font when extracting text from PDF

我一直在尝试从 PDF 文件中提取文本,大多数文件似乎都可以正常工作。然而,一个特定的文档中的文本使用了这种不寻常的字体:indic solid

我试过使用 PHP 和 Python 进行提取,但都无法修复此字体。我尝试复制文本并尝试查看是否可以在文本编辑工具中修复它,但无法做到 much.Please 请注意,原始 PDF 文档看起来不错,但是当文本被复制并粘贴到文本编辑工具中时,字符之间的差距开始出现。我完全不知道该怎么做。请在 PHP/Python(最好是 PHP)中提出解决此问题的解决方案。

在 unicode 之前,一些字符编码允许您将 Japanese/Korean/Chinese 个字符组成两个半角字符或一个全角字符。在那种情况下,拉丁字符可以是全角的,以便与其他字符均匀混合。你手上有全角拉丁字符,这就是为什么 space 奇怪地出现了。

您可以normalize 将字符串与 NFKD 兼容分解为正则拉丁文。这也将改变任何 half/full 宽度 Japanese/Korean/Chinese 字符,嗯......我不确定,但我认为由多代码点字符构建的字符。

>>> import unicodedata
>>> t="in solid"
>>> unicodedata.normalize("NFKC", t)
'in solid'