msx-font/importchars.py

38 lines
824 B
Python

import fontforge
import argparse
import sys
import os
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()
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)
glyph.importOutlines(os.path.join(args.svgdir, svgfile))
glyph.simplify()
glyph.autoHint()
font.save(args.output_sfd)
font.generate(args.output_woff)