美文网首页
字体库缺失冷僻字

字体库缺失冷僻字

作者: alue | 来源:发表于2022-07-12 21:04 被阅读0次

python印章生成里使用了“华文新魏”字体来生成印章.实际运行中发现,有些冷僻字会显示为空白。例如“皛暐”这个名字,实际生成的印章,就是下图这样,呈现空白。

问题很容易定位,肯定是字体库对生僻字不支持导致的。那么我们怎么用程序来判断当前文字是否在字体库中呢?

这就要用到python操作字体的工具库 fontTools了。
例如,我们想看汉字“皛”是否存在“华文新魏”字体库中,就可以用以下代码来实现:

from fontTools.ttLib import TTFont

font = TTFont("C:/Windows/Fonts/STXINWEI.TTF")
unicode_dict = font['cmap'].tables[0].ttFont.getBestCmap()

print(ord('皛') in unicode_dict.keys())

其中ord('皛') 是python内置函数,返回‘皛’在unicode中的字符串表示。如果该unicode存在 unicode_dict.keys()中,就说明当前字体库包含该汉字,否则就是不包含。

一旦判断当前姓名中包含了“华文新魏”字体库中不存在的字符,那么就可以降级使用更为通用的字体,例如“隶书”或者“楷体”等,这就解决了生僻字问题。

相关文章

网友评论

      本文标题:字体库缺失冷僻字

      本文链接:https://www.haomeiwen.com/subject/wjgabrtx.html