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

Python 从PDF中提取文本时出现异常字体,python,php,pdf,fonts,character-encoding,Python,Php,Pdf,Fonts,Character Encoding,我一直在尝试从PDF文件中提取文本,大多数文件似乎都工作正常。但是,有一个特定文档的文本采用这种不寻常的字体:in solid 我尝试过使用PHP和Python进行提取,但都无法修复这种字体。我尝试复制文本,并尝试查看是否可以在文本编辑工具中修复它,但做不了太多。请注意,原始PDF文档看起来不错,但当文本被复制并粘贴到文本编辑工具中时,字符之间的间距开始出现。我完全不知道该怎么办。请建议一种解决方案,用PHP/Python(最好是PHP)解决这个问题。在unicode之前,一些字符编码允许您将日

我一直在尝试从PDF文件中提取文本,大多数文件似乎都工作正常。但是,有一个特定文档的文本采用这种不寻常的字体:in solid


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

在unicode之前,一些字符编码允许您将日语/韩语/汉语字符组合为两个半宽字符或一个全宽字符。在这种情况下,拉丁字符可以是全宽的,以便和其他字符均匀混合。你的手上有全宽的拉丁字符,这就是为什么空格很奇怪

您可以使用NFKD兼容性分解来转换字符串,以获得常规拉丁语。这也会改变任何半/全宽的日文/韩文/中文字符,嗯。。。我不确定,但我认为是由多代码点字符构建的字符

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

与其说它是一种不同寻常的字体,不如说它是一种不同寻常的unicode块,称为Fullwidth Latin。维基百科的一般信息,网址为。您可以使用
unicodedata
模块获取更多信息。例如,
unicodedata.name(“i")谢谢,这对我很有效!接受了你的答案,事实上这是由于全半角字符。