make the otf minimal example work on windows 10

This commit is contained in:
Medhat Assaad 2019-07-11 07:35:26 -05:00 committed by GitHub
parent 506965db6e
commit 56c1a32744
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -76,6 +76,7 @@ And here's how to build a minimal OTF:
from fontTools.fontBuilder import FontBuilder from fontTools.fontBuilder import FontBuilder
from fontTools.pens.t2CharStringPen import T2CharStringPen from fontTools.pens.t2CharStringPen import T2CharStringPen
def drawTestGlyph(pen): def drawTestGlyph(pen):
pen.moveTo((100, 100)) pen.moveTo((100, 100))
pen.lineTo((100, 1000)) pen.lineTo((100, 1000))
@ -83,6 +84,7 @@ def drawTestGlyph(pen):
pen.lineTo((500, 100)) pen.lineTo((500, 100))
pen.closePath() pen.closePath()
fb = FontBuilder(1024, isTTF=False) fb = FontBuilder(1024, isTTF=False)
fb.setupGlyphOrder([".notdef", ".null", "A", "a"]) fb.setupGlyphOrder([".notdef", ".null", "A", "a"])
fb.setupCharacterMap({65: "A", 97: "a"}) fb.setupCharacterMap({65: "A", 97: "a"})
@ -91,15 +93,24 @@ advanceWidths = {".notdef": 600, "A": 600, "a": 600, ".null": 600}
familyName = "HelloTestFont" familyName = "HelloTestFont"
styleName = "TotallyNormal" styleName = "TotallyNormal"
nameStrings = dict(familyName=dict(en="HelloTestFont", nl="HalloTestFont"), nameStrings = dict(
styleName=dict(en="TotallyNormal", nl="TotaalNormaal")) familyName=dict(en=familyName, nl="HalloTestFont"),
nameStrings['psName'] = familyName + "-" + styleName styleName=dict(en=styleName, nl="TotaalNormaal"),
uniqueFontIdentifier="fontBuilder: " + familyName + "." + styleName,
fullName=familyName + "-" + styleName,
psName=familyName + "-" + styleName,
)
pen = T2CharStringPen(600, None) pen = T2CharStringPen(600, None)
drawTestGlyph(pen) drawTestGlyph(pen)
charString = pen.getCharString() charString = pen.getCharString()
charStrings = {".notdef": charString, "A": charString, "a": charString, ".null": charString} charStrings = {
fb.setupCFF(nameStrings['psName'], {"FullName": nameStrings['psName']}, charStrings, {}) ".notdef": charString,
"A": charString,
"a": charString,
".null": charString,
}
fb.setupCFF(nameStrings["psName"], {"FullName": nameStrings["psName"]}, charStrings, {})
lsb = {gn: cs.calcBounds(None)[0] for gn, cs in charStrings.items()} lsb = {gn: cs.calcBounds(None)[0] for gn, cs in charStrings.items()}
metrics = {} metrics = {}