diff options
Diffstat (limited to 'misc/fontbuildlib/stat.py')
-rw-r--r-- | misc/fontbuildlib/stat.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/misc/fontbuildlib/stat.py b/misc/fontbuildlib/stat.py new file mode 100644 index 000000000..9ba28300c --- /dev/null +++ b/misc/fontbuildlib/stat.py @@ -0,0 +1,34 @@ +# from fontTools.designspaceLib import DesignSpaceDocument +# from fontTools.ttLib.tables import otTables as ot +# from fontTools.ttLib import ttFont +from fontTools.otlLib.builder import buildStatTable + +def rebuildStatTable(font, designspace): + if not 'fvar' in font: + raise Exception('missing fvar table in font') + + axes = [dict(tag=a.axisTag, name=a.axisNameID) for a in font['fvar'].axes] + # axes = [] + # for a in statTable.DesignAxisRecord.Axis: + # axes.append({ 'tag': a.AxisTag, 'name': a.AxisNameID, 'ordering': a.AxisOrdering }) + + axisNameToTag = dict() + for axis in designspace.axes: + axisNameToTag[axis.name] = axis.tag + + locations = [] + for instance in designspace.instances: + location = dict() + for axisName, value in instance.location.items(): + tag = axisNameToTag[axisName] + location[tag] = value + locations.append({ 'name': instance.styleName, 'location': location }) + + buildStatTable(font, axes, locations) + + +# font = ttFont.TTFont("build/fonts/var/Inter.var.ttf") +# designspace = DesignSpaceDocument.fromfile('build/ufo/inter.designspace') +# rebuildStatTable(font, designspace) +# print("write build/tmp/Inter.var-patched.ttf") +# font.save("build/tmp/Inter.var-patched.ttf") |