PIL.ImageFont无法打开名称为空格的字体

时间:2019-03-26 22:05:12

标签: python python-imaging-library

我正在尝试使用PIL.ImageFont.truetype打开字体 这是用于OCR项目

到目前为止,我一直无法在Google或此站点中找到解决方案。 当我尝试打开名称中带有空格的字体时,会出现问题。 任何没有空格的字体名称都可以正常工作

from PIL import ImageFont

#This Works
ImageFont.truetype("C:\Windows\Fonts\Arial.ttf", 12)

#This does not
ImageFont.truetype("C:\Windows\Fonts\Times New Roman.ttf", 12)

错误在这里:

  

init 中的文件“ B:\ Python \ lib \ site-packages \ PIL \ ImageFont.py”,第145行     layout_engine = layout_engine)
  OSError:无法打开资源

我尝试了以下
1)重命名文件(无论如何都不是一个优雅的解决方案)
2)将字体移到与python脚本相同的目录中
3)添加/内部空间(建议)

我还通过多次尝试使用不同的字体名称来检查错误,并且发生了相同的错误。

到目前为止没有任何作用

预先感谢

3 个答案:

答案 0 :(得分:0)

这不是您认为的字符串:

"C:\Windows\Fonts\Times New Roman.ttf"

反斜杠是转义字符。您需要转义反斜杠以拥有真实的反斜杠,如下所示:

"C:\\Windows\\Fonts\\Times New Roman.ttf"

如果您愿意,也可以这样做:

os.path.join('C:\\', 'Windows', 'Fonts', 'Times New Roman.ttf')

答案 1 :(得分:0)

好吧

我可能有解决办法。当我输入字体文件名并出现上下文菜单时,提示就出现了。

在上下文菜单中是一个字体列表。 所有字体名称都更改为一个名称。 例如,“ Time New Roman”更改为“ times”

我很想知道这个列表在哪里。 我试图找到它,但是空了出来。

此外,此外,我想使用未列出的自定义字体。 下载字体后,我将其重命名为单个单词字体。 然后,将字体放在与python脚本相同的目录中。 这样就可以了。

我以为我可以在其他人遇到相同问题的情况下发布此信息

答案 2 :(得分:0)

我在网上找到了一个将字体名称映射到文件名的列表。您可以使用文件名作为相应的字体名称。

例如:对于“Times New Roman”,我们可以使用“Times.ttf”

请在以下链接中找到完整列表

https://docs.microsoft.com/en-us/typography/fonts/windows_10_font_list

相关问题