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

字体库缺失冷僻字

作者: 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