vfinstance (778B)
1 #!/usr/bin/env python 2 3 # vfinstance: dump pre-defined instance of a variable font 4 # dependency: fonttools 5 6 import fontTools.ttLib as ttLib 7 import sys 8 9 def dump_instance(font, instance): 10 name = font['name'].getDebugName(instance.subfamilyNameID) 11 if name is None: 12 name = "unnamed" 13 14 result = [] 15 result.append(name + ":") 16 17 for k,v in instance.coordinates.items(): 18 v = int(v) if v.is_integer() else v 19 result.append(f" {k}: {v}") 20 21 return "\n".join(result) 22 23 if len(sys.argv) < 2: 24 print("usage: vfinstance font.ttf") 25 exit(1) 26 27 fname = sys.argv[1] 28 29 font = ttLib.TTFont(fname) 30 31 if 'fvar' not in font: 32 print("no pre-defined instance found") 33 exit(1) 34 35 print("\n".join([dump_instance(font, i) for i in font['fvar'].instances]))