Skip to content

Instantly share code, notes, and snippets.

@illucent
Forked from pklaus/get_name.py
Created March 22, 2016 11:11
Show Gist options
  • Save illucent/b85afdeaa4f675e2325b to your computer and use it in GitHub Desktop.
Save illucent/b85afdeaa4f675e2325b 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))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment