我正在尝试使用 PIL.ImageFont.truetype 打开字体 这是用于 OCR 项目到目前为止,我一直无法在 Google 或此站点中找到解决方案。当我尝试打开名称中带有空格的字体时会出现问题。任何没有空格的字体名称都可以正常工作from PIL import ImageFont#This WorksImageFont.truetype("C:\Windows\Fonts\Arial.ttf", 12)#This does notImageFont.truetype("C:\Windows\Fonts\Times New Roman.ttf", 12)错误在这里:文件 "B:\Python\lib\site-packages\PIL\ImageFont.py", line 145, in init layout_engine=layout_engine)OSError: cannot open resource我已经尝试了以下1)重命名文件(无论如何都不是一个优雅的解决方案)2)将字体移动到与 python 脚本相同的目录3)在空间中添加 / (建议)我还通过使用不同的字体名称多次尝试来检查错误,并且发生了相同的错误。到目前为止没有任何效果提前致谢
3 回答
回首忆惘然
TA贡献1847条经验 获得超11个赞
行,
我可能有解决办法。当我输入字体文件名并出现上下文菜单时,提示出现了。
在上下文菜单中有一个字体列表。所有字体名称都更改为一个名称。例如“Time New Roman”改为“times”
我很想知道这个列表在哪里。我试图找到它,但空空如也。
此外,此外,我想使用未列出的自定义字体。下载字体后,我将其重命名为单字字体。然后我将字体放在与我的 python 脚本相同的目录中。这工作正常。
我想我会发布这个以防其他人遇到同样的问题
守候你守候我
TA贡献1802条经验 获得超10个赞
这不是您认为的字符串:
"C:\Windows\Fonts\Times New Roman.ttf"
反斜杠是转义字符。您需要转义反斜杠才能获得真正的反斜杠,如下所示:
"C:\\Windows\\Fonts\\Times New Roman.ttf"
如果您愿意,也可以这样做:
os.path.join('C:\\', 'Windows', 'Fonts', 'Times New Roman.ttf')
POPMUISE
TA贡献1765条经验 获得超5个赞
我在网上找到了一个列表,其中字体名称映射到文件名。您可以使用文件名作为相应的字体名称。
例如:对于“Times New Roman”,我们可以使用“Times.ttf”
请在以下链接中找到完整列表
https://docs.microsoft.com/en-us/typography/fonts/windows_10_font_list
添加回答
举报
0/150
提交
取消
