def main(): parser = argparse.ArgumentParser(description="Build Reem Kufi fonts.") parser.add_argument("file", metavar="FILE", help="input font to process") parser.add_argument("--out-file", metavar="FILE", help="output font to write", required=True) args = parser.parse_args() with TemporaryDirectory() as tempdir: ufos, designspace = build_masters(args.file, tempdir, tempdir) doc = DesignSpaceDocument() doc.read(designspace) doc.instances = [i for i in doc.instances if i.styleName == "Regular"] assert len(doc.instances) == 1 instance = doc.instances[0] instance.location = dict(Weight=108) instance.path = args.out_file doc.write(designspace) build(designspace, outputUFOFormatVersion=3)
scaleFont(font.path, font.path, factor) source.location = {'Weight': wght['max'], 'Optical size': opsz['min']} source.styleName = "BlackMin" doc.addSource(source) # removeAreas(font) doc.write(path) doc.write(minPath) minDoc = DesignSpaceDocument() minDoc.read(minPath) # resetting instances minDoc.instances = [] # Calculate location weightMin = wght.get('regular') - (wght.get('regular') - wght.get('min')) * weightCropIndex weightMax = wght.get('regular') + (wght.get('max') - wght.get('regular')) * weightCropIndex instance = InstanceDescriptor() instance.familyName = familyName instance.styleName = "Thin" instance.name = "Piazzolla-Thin-OpszMin.ufo" instance.path = lightUfo newUfo = ufo.replace('.ufo', '-OpszMin.ufo') instance.location = {'Weight': weightMin, 'Optical size': opsz['min']} minDoc.addInstance(instance)