当前位置:   article > 正文

python-判断字体中是否含有ocr类别字典中字符(中文、英文、符号)_python如何检查ttf字体文件支持中文字符

python如何检查ttf字体文件支持中文字符
  1. ############### 判断字体中是否都包含字典中的字符 ################
  2. from fontTools.ttLib import TTFont
  3. import os
  4. from shutil import copyfile
  5. from fontTools.ttLib.sfnt import DirectoryEntry
  6. with open('/data/git/ocr-platform/statistic/TextGenerator/TextGenerator/process/dicts/chinese_dict.txt','r') as f1:
  7. dict_chinese=f1.readline()
  8. f1.close()
  9. print(len(dict_chinese))
  10. font_fd='/data/git/ocr-platform/statistic/TextGenerator/TextGenerator/fonts/general_en/'
  11. save_fd='/data/git/ocr-platform/statistic/TextGenerator/TextGenerator/fonts/cn/'
  12. # fontType = "/data/git/ocr-platform/statistic/TextGenerator/TextGenerator/fonts/general_en_del/ARIAL.ttf"
  13. for font_name in os.listdir(font_fd):
  14. if font_name.endswith('.ttf') or font_name.endswith('.TTF'):
  15. fontType=font_fd+font_name
  16. print('###################')
  17. print(fontType)
  18. font = TTFont(fontType)
  19. uniMap = font['cmap'].tables[0].ttFont.getBestCmap()
  20. # print (ord('1') in uniMap.keys()) #True
  21. glyfMapDict = TTFont(fontType)['glyf']
  22. # print(len(glyfMapDict[uniMap[ord('1')]].getCoordinates(0)[0]))#23
  23. count=0
  24. for c in dict_chinese:
  25. # print(c)
  26. if uniMap is not None:
  27. if ord(c) in uniMap.keys():
  28. count+=1
  29. pass
  30. else:
  31. if font_name=='simsun.ttf':
  32. print(c)
  33. if count==len(dict_chinese):
  34. print(save_fd+font_name)
  35. copyfile(fontType, save_fd+font_name)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/705312
推荐阅读
相关标签
  

闽ICP备14008679号