def makeFont(axisTags): """['opsz', 'wdth'] --> ttFont""" fvar = table__f_v_a_r() for tag in axisTags: axis = Axis() axis.axisTag = tag fvar.axes.append(axis) return {"fvar": fvar}
def makeFont(axisTags): """['opsz', 'wdth'] --> ttFont""" fvar = table__f_v_a_r() for tag in axisTags: axis = Axis() axis.axisTag = tag fvar.axes.append(axis) return {"fvar": fvar}
def test_fromXML(self): fvar = table__f_v_a_r() fvar.fromXML("Axis", {}, [("AxisTag", {}, ["opsz"])], ttFont=None) fvar.fromXML("Axis", {}, [("AxisTag", {}, ["slnt"])], ttFont=None) fvar.fromXML("NamedInstance", {"nameID": "765"}, [], ttFont=None) fvar.fromXML("NamedInstance", {"nameID": "234"}, [], ttFont=None) self.assertEqual(["opsz", "slnt"], [a.axisTag for a in fvar.axes]) self.assertEqual([765, 234], [i.nameID for i in fvar.instances])
def test_fromXML(self): fvar = table__f_v_a_r() fvar.fromXML("Axis", {}, [("AxisTag", {}, ["opsz"])], ttFont=None) fvar.fromXML("Axis", {}, [("AxisTag", {}, ["slnt"])], ttFont=None) fvar.fromXML("NamedInstance", {"nameID": "765"}, [], ttFont=None) fvar.fromXML("NamedInstance", {"nameID": "234"}, [], ttFont=None) self.assertEqual(["opsz", "slnt"], [a.axisTag for a in fvar.axes]) self.assertEqual([765, 234], [i.nameID for i in fvar.instances])
def test_fromXML(self): fvar = table__f_v_a_r() for name, attrs, content in parseXML( '<Axis>' ' <AxisTag>opsz</AxisTag>' '</Axis>' '<Axis>' ' <AxisTag>slnt</AxisTag>' '</Axis>' '<NamedInstance subfamilyNameID="765"/>' '<NamedInstance subfamilyNameID="234"/>'): fvar.fromXML(name, attrs, content, ttFont=None) self.assertEqual(["opsz", "slnt"], [a.axisTag for a in fvar.axes]) self.assertEqual([765, 234], [i.subfamilyNameID for i in fvar.instances])
def test_fromXML(self): fvar = table__f_v_a_r() for name, attrs, content in parseXML( '<Axis>' ' <AxisTag>opsz</AxisTag>' '</Axis>' '<Axis>' ' <AxisTag>slnt</AxisTag>' '</Axis>' '<NamedInstance subfamilyNameID="765"/>' '<NamedInstance subfamilyNameID="234"/>'): fvar.fromXML(name, attrs, content, ttFont=None) self.assertEqual(["opsz", "slnt"], [a.axisTag for a in fvar.axes]) self.assertEqual([765, 234], [i.subfamilyNameID for i in fvar.instances])
def _add_fvar(font, axes, instances): assert "fvar" not in font font['fvar'] = fvar = table__f_v_a_r() for tag in sorted(axes.keys()): axis = Axis() axis.axisTag = tag name, axis.minValue, axis.defaultValue, axis.maxValue = axes[tag] axis.nameID = _AddName(font, name).nameID fvar.axes.append(axis) for name, coordinates in instances: inst = NamedInstance() inst.nameID = _AddName(font, name).nameID inst.coordinates = coordinates fvar.instances.append(inst)
def _add_fvar(font, axes, instances): assert "fvar" not in font font['fvar'] = fvar = table__f_v_a_r() for tag in sorted(axes.keys()): axis = Axis() axis.axisTag = tag name, axis.minValue, axis.defaultValue, axis.maxValue = axes[tag] axis.nameID = _AddName(font, name).nameID fvar.axes.append(axis) for name, coordinates in instances: inst = NamedInstance() inst.nameID = _AddName(font, name).nameID inst.coordinates = coordinates fvar.instances.append(inst)
def AddFontVariations(font): assert "fvar" not in font fvar = font["fvar"] = table__f_v_a_r() weight = Axis() weight.axisTag = "wght" weight.nameID = AddName(font, "Weight").nameID weight.minValue, weight.defaultValue, weight.maxValue = (100, 400, 900) fvar.axes.append(weight) # https://www.microsoft.com/typography/otspec/os2.htm#wtc for name, wght in (("Thin", 100), ("Light", 300), ("Regular", 400), ("Bold", 700), ("Black", 900)): inst = NamedInstance() inst.nameID = AddName(font, name).nameID inst.coordinates = {"wght": wght} fvar.instances.append(inst)
def MakeFont(): axes = [("wght", "Weight", 100, 400, 900), ("wdth", "Width", 50, 100, 200)] instances = [("Light", 300, 100), ("Light Condensed", 300, 75)] fvarTable = table__f_v_a_r() font = {"fvar": fvarTable} for tag, name, minValue, defaultValue, maxValue in axes: axis = Axis() axis.axisTag = tag axis.defaultValue = defaultValue axis.minValue, axis.maxValue = minValue, maxValue axis.axisNameID = AddName(font, name).nameID fvarTable.axes.append(axis) for name, weight, width in instances: inst = NamedInstance() inst.subfamilyNameID = AddName(font, name).nameID inst.coordinates = {"wght": weight, "wdth": width} fvarTable.instances.append(inst) return font
def MakeFont(): axes = [("wght", "Weight", 100, 400, 900), ("wdth", "Width", 50, 100, 200)] instances = [("Light", 300, 100), ("Light Condensed", 300, 75)] fvarTable = table__f_v_a_r() font = {"fvar": fvarTable} for tag, name, minValue, defaultValue, maxValue in axes: axis = Axis() axis.axisTag = tag axis.defaultValue = defaultValue axis.minValue, axis.maxValue = minValue, maxValue axis.nameID = AddName(font, name).nameID fvarTable.axes.append(axis) for name, weight, width in instances: inst = NamedInstance() inst.nameID = AddName(font, name).nameID inst.coordinates = {"wght": weight, "wdth": width} fvarTable.instances.append(inst) return font
def AddFontVariations(font): assert "fvar" not in font fvar = font["fvar"] = table__f_v_a_r() weight = Axis() weight.axisTag = "wght" weight.nameID = AddName(font, "Weight").nameID weight.minValue, weight.defaultValue, weight.maxValue = (100, 400, 900) fvar.axes.append(weight) # https://www.microsoft.com/typography/otspec/os2.htm#wtc for name, wght in ( ("Thin", 100), ("Light", 300), ("Regular", 400), ("Bold", 700), ("Black", 900)): inst = NamedInstance() inst.nameID = AddName(font, name).nameID inst.coordinates = {"wght": wght} fvar.instances.append(inst)
def test_decompile(self): fvar = table__f_v_a_r() fvar.decompile(FVAR_DATA, ttFont={"fvar": fvar}) self.assertEqual(["wght", "wdth"], [a.axisTag for a in fvar.axes]) self.assertEqual([259, 260], [i.subfamilyNameID for i in fvar.instances])
def test_decompile(self): fvar = table__f_v_a_r() fvar.decompile(FVAR_DATA, ttFont={"fvar": fvar}) self.assertEqual(["wght", "wdth"], [a.axisTag for a in fvar.axes]) self.assertEqual([259, 260], [i.nameID for i in fvar.instances])