msx-font/importchars.py

38 lines
824 B
Python
Raw Normal View History

import fontforge
2016-09-15 13:16:09 -04:00
import argparse
import sys
import os
2016-09-15 13:16:09 -04:00
parser = argparse.ArgumentParser()
parser.add_argument('charmap')
parser.add_argument('svgdir')
parser.add_argument('--fullname')
parser.add_argument('--output-sfd')
parser.add_argument('--output-woff')
parser.add_argument('--output-ttf')
args = parser.parse_args()
print(args)
font = fontforge.font()
2016-09-15 13:16:09 -04:00
font.ascent = 1024 - 128
font.descent = 128
font.fullname = args.fullname
f = open(args.charmap)
for line in f:
codepoint, msxcode = line.strip().split()
codepoint = int(codepoint)
msxcode = int(msxcode)
glyph = font.createChar(codepoint)
svgfile = "{:03d}.svg".format(msxcode)
2016-09-15 13:16:09 -04:00
glyph.importOutlines(os.path.join(args.svgdir, svgfile))
glyph.simplify()
glyph.autoHint()
2016-09-15 13:16:09 -04:00
font.save(args.output_sfd)
font.generate(args.output_woff)