Skip to content

Instantly share code, notes, and snippets.

@pklaus
Forked from starrhorne/gist:1637310
Last active October 25, 2025 11:07
Show Gist options
  • Select an option

  • Save pklaus/dce37521579513c574d0 to your computer and use it in GitHub Desktop.

Select an option

Save pklaus/dce37521579513c574d0 to your computer and use it in GitHub Desktop.
Extracting font names from TTF/OTF files using Python and fontTools
#!/usr/bin/env python
"""
From
https://github.com/gddc/ttfquery/blob/master/ttfquery/describe.py
and
http://www.starrhorne.com/2012/01/18/how-to-extract-font-names-from-ttf-files-using-python-and-our-old-friend-the-command-line.html
ported to Python 3
"""
import sys
from fontTools import ttLib
FONT_SPECIFIER_NAME_ID = 4
FONT_SPECIFIER_FAMILY_ID = 1
def shortName( font ):
"""Get the short name from the font's names table"""
name = ""
family = ""
for record in font['name'].names:
if b'\x00' in record.string:
name_str = record.string.decode('utf-16-be')
else:
name_str = record.string.decode('utf-8')
if record.nameID == FONT_SPECIFIER_NAME_ID and not name:
name = name_str
elif record.nameID == FONT_SPECIFIER_FAMILY_ID and not family:
family = name_str
if name and family: break
return name, family
tt = ttLib.TTFont(sys.argv[1])
print("Name: %s Family: %s" % shortName(tt))
@EvaSteele
Copy link

Hello! I hope you're well. I wanted to tell you something that has me a little confused. I have bought many Huawei fonts in the store, but they give them to me in TTF format instead of HWT. I have another device, it's a Samsung, and I would like to use those fonts with the Monofonts app, but it doesn't seem to recognize it. For example: 'encrypted_mundomaravilloso.ttf' (which is the name of the Huawei font). Do you have any idea how I could fix it? I thank you very much for your help! 😊 I would love to be able to use Huawei fonts on the Samsung.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment