Add fint-font script
parent
f3d637d6aa
commit
4e416dbc4d
|
@ -0,0 +1,38 @@
|
||||||
|
#!/bin/python
|
||||||
|
#
|
||||||
|
# Based on: https://superuser.com/a/1452828
|
||||||
|
|
||||||
|
import unicodedata
|
||||||
|
from itertools import chain
|
||||||
|
# from os import walk, path
|
||||||
|
import os
|
||||||
|
from fontTools.ttLib import TTFont
|
||||||
|
|
||||||
|
def find_fonts_in(path):
|
||||||
|
fonts = []
|
||||||
|
for root,dirs,files in os.walk(path):
|
||||||
|
for file in files:
|
||||||
|
if file.endswith(".ttf"): fonts.append(os.path.join(root,file))
|
||||||
|
return fonts
|
||||||
|
|
||||||
|
def char_in_font(unicode_char, font):
|
||||||
|
for cmap in font['cmap'].tables:
|
||||||
|
if cmap.isUnicode():
|
||||||
|
if ord(unicode_char) in cmap.cmap:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def test(ch, fonts):
|
||||||
|
for fontpath in fonts:
|
||||||
|
font = TTFont(fontpath)
|
||||||
|
if char_in_font(ch, font):
|
||||||
|
print(ch + " "+ unicodedata.name(ch) + " in " + fontpath)
|
||||||
|
|
||||||
|
if __name__ =='__main__':
|
||||||
|
font_dirs = [ "/usr/share/fonts/"
|
||||||
|
, "/usr/local/share/fonts/"
|
||||||
|
, "~/.local/share/fonts"
|
||||||
|
]
|
||||||
|
fonts = [font for font_dir in font_dirs for font in find_fonts_in(font_dir)]
|
||||||
|
|
||||||
|
test(u'🪞', fonts)
|
Loading…
Reference in New Issue