This repository has been archived on 2025-10-02. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
inter-font/misc/fontbuildlib/stat.py
Rasmus Andersson d76268cf8d tooling: upgrade libs, rename VF fext otf -> ttf, add STAT table patch
- upgrades 3rd party libraries used by the toolchain
- upgrades fontbuild code to adjust changes to library APIs
- renames VF font filename extensions to .ttf
- adds better STAT table patch to improve metadata on Windows
2020-08-18 17:57:25 -07:00

34 lines
1.2 KiB
Python

# 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")