#!/usr/bin/env python import fontforge import argparse import sys import os parser = argparse.ArgumentParser() parser.add_argument('charmap') parser.add_argument('svgdir') parser.add_argument('--fontname') parser.add_argument('--fullname') parser.add_argument('--familyname') parser.add_argument('--width', type=int) parser.add_argument('--output-sfd') parser.add_argument('--output-woff') parser.add_argument('--output-ttf') args = parser.parse_args() font = fontforge.font() font.ascent = 1024 - 128 font.descent = 128 font.fontname = args.fontname font.fullname = args.fullname font.familyname = args.familyname font.copyright = "Created by Andy Teijelo with FontForge 2.0 (http://fontforge.sf.net)" f = open(args.charmap) for line in f: codepoint, msxcode = line.strip().split() codepoint = int(codepoint) msxcode = int(msxcode) glyph = font.createChar(codepoint) svgfile = "{}.svg".format(msxcode) glyph.importOutlines(os.path.join(args.svgdir, svgfile)) glyph.width = args.width glyph.simplify() glyph.simplify(1.02, "forcelines") glyph.autoHint() font.save(args.output_sfd) font.generate(args.output_woff) font.generate(args.output_ttf)