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]))