aboutsummaryrefslogtreecommitdiff
path: root/Lib/fontTools/fontBuilder.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/fontTools/fontBuilder.py')
-rw-r--r--Lib/fontTools/fontBuilder.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/Lib/fontTools/fontBuilder.py b/Lib/fontTools/fontBuilder.py
index 8854c164..ef14b045 100644
--- a/Lib/fontTools/fontBuilder.py
+++ b/Lib/fontTools/fontBuilder.py
@@ -21,6 +21,7 @@ that works:
fb.setupHorizontalHeader()
fb.setupNameTable(...)
fb.setupOS2()
+ fb.addOpenTypeFeatures(...)
fb.setupPost()
fb.save(...)
@@ -100,9 +101,10 @@ charString = pen.getCharString()
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()}
metrics = {}
for gn, advanceWidth in advanceWidths.items():
- metrics[gn] = (advanceWidth, 100) # XXX lsb from glyph
+ metrics[gn] = (advanceWidth, lsb[gn])
fb.setupHorizontalMetrics(metrics)
fb.setupHorizontalHeader(ascent=824, descent=200)
@@ -298,7 +300,7 @@ _OS2Defaults = dict(
sCapHeight = 0,
usDefaultChar = 0, # .notdef
usBreakChar = 32, # space
- usMaxContext = 2, # just kerning
+ usMaxContext = 0,
usLowerOpticalPointSize = 0,
usUpperOpticalPointSize = 0,
)
@@ -690,8 +692,9 @@ class FontBuilder(object):
"""Create a new `post` table and initialize it with default values,
which can be overridden by keyword arguments.
"""
+ isCFF2 = 'CFF2' in self.font
postTable = self._initTableWithValues("post", _postDefaults, values)
- if self.isTTF and keepGlyphNames:
+ if (self.isTTF or isCFF2) and keepGlyphNames:
postTable.formatType = 2.0
postTable.extraNames = []
postTable.mapping = {}