adds --cufo flag to ufocompile for compiling UFO files instead of OTF and TTF files
This commit is contained in:
parent
50ca3807f7
commit
8c1a4c181e
2 changed files with 36 additions and 22 deletions
|
|
@ -72,6 +72,7 @@ class FontProject:
|
|||
self.buildOTF = False
|
||||
self.compatible = False
|
||||
self.generatedFonts = []
|
||||
self.justCompileUFO = False
|
||||
|
||||
def openResource(self, name):
|
||||
with open(os.path.join(
|
||||
|
|
@ -98,7 +99,8 @@ class FontProject:
|
|||
f = mix.generateFont(self.basefont, self.deleteList)
|
||||
else:
|
||||
f = mix.copy()
|
||||
deleteGlyphs(f, self.deleteList)
|
||||
if not self.justCompileUFO:
|
||||
deleteGlyphs(f, self.deleteList)
|
||||
|
||||
if italic == True:
|
||||
log(">> Italicizing")
|
||||
|
|
@ -137,12 +139,13 @@ class FontProject:
|
|||
if len(g.components) > 0:
|
||||
self.predecompose.add(g.name)
|
||||
|
||||
for gname in self.predecompose:
|
||||
if f.has_key(gname):
|
||||
decomposeGlyph(f, f[gname])
|
||||
if not self.justCompileUFO:
|
||||
for gname in self.predecompose:
|
||||
if f.has_key(gname):
|
||||
decomposeGlyph(f, f[gname])
|
||||
|
||||
log(">> Generating glyphs")
|
||||
generateGlyphs(f, self.diacriticList, self.adobeGlyphList)
|
||||
self.generateGlyphs(f, self.diacriticList, self.adobeGlyphList)
|
||||
# log(">> Reading features")
|
||||
# readFeatureFile(f, f.features.text)
|
||||
|
||||
|
|
@ -163,13 +166,14 @@ class FontProject:
|
|||
g.leftMargin = newLeftMargin
|
||||
g.rightMargin = newRightMargin
|
||||
|
||||
log(">> Decomposing")
|
||||
# for g in f:
|
||||
# if len(g.components) > 0:
|
||||
# decomposeGlyph(f, g)
|
||||
for gname in self.decompose:
|
||||
if f.has_key(gname):
|
||||
decomposeGlyph(f, f[gname])
|
||||
if not self.justCompileUFO:
|
||||
log(">> Decomposing")
|
||||
# for g in f:
|
||||
# if len(g.components) > 0:
|
||||
# decomposeGlyph(f, g)
|
||||
for gname in self.decompose:
|
||||
if f.has_key(gname):
|
||||
decomposeGlyph(f, f[gname])
|
||||
|
||||
copyrightHolderName = ''
|
||||
if self.config.has_option('main', 'copyrightHolderName'):
|
||||
|
|
@ -193,7 +197,8 @@ class FontProject:
|
|||
'italicAngle': float(getcfg('italicAngle', '-12')),
|
||||
}, panose)
|
||||
|
||||
if not self.compatible:
|
||||
if not self.compatible and not self.justCompileUFO:
|
||||
# Remove overlaps etc
|
||||
cleanCurves(f)
|
||||
# deleteGlyphs(f, self.deleteList)
|
||||
|
||||
|
|
@ -202,6 +207,10 @@ class FontProject:
|
|||
f.save(ufoName)
|
||||
self.generatedFonts.append(ufoName)
|
||||
|
||||
if self.justCompileUFO:
|
||||
print("wrote %s" % ufoName)
|
||||
return
|
||||
|
||||
# filter glyphorder -- only include glyphs that exists in font
|
||||
glyphOrder = []
|
||||
seenGlyphNames = set()
|
||||
|
|
@ -242,6 +251,12 @@ class FontProject:
|
|||
glyphOrder = [n for n in self.glyphOrder if n in font]
|
||||
saveOTF(font, ttfName, glyphOrder, truetype=True)
|
||||
|
||||
def generateGlyphs(self, f, glyphNames, glyphList={}):
|
||||
log(">> Generating diacritics")
|
||||
glyphnames = [gname for gname in glyphNames if not gname.startswith("#") and gname != ""]
|
||||
for glyphName in glyphNames:
|
||||
generateGlyph(f, glyphName, glyphList)
|
||||
|
||||
|
||||
# def transformGlyphMembers(g, m):
|
||||
# g.width = int(g.width * m.a)
|
||||
|
|
@ -290,14 +305,6 @@ def log(msg):
|
|||
print msg
|
||||
|
||||
|
||||
def generateGlyphs(f, glyphNames, glyphList={}):
|
||||
log(">> Generating diacritics")
|
||||
glyphnames = [gname for gname in glyphNames if not gname.startswith("#") and gname != ""]
|
||||
|
||||
for glyphName in glyphNames:
|
||||
generateGlyph(f, glyphName, glyphList)
|
||||
|
||||
|
||||
def deleteGlyphs(f, deleteList):
|
||||
for name in deleteList:
|
||||
if f.has_key(name):
|
||||
|
|
|
|||
Reference in a new issue