12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/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)
|