1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- from AppKit import NSBezierPath
- from fontTools.ttLib import TTFont
- from fontTools.pens.cocoaPen import CocoaPen
- import string
- charset = string.uppercase+string.lowercase
- label1 = "Roboto-Light"
- label2 = "VF Instance"
- fontpath1 = "master_ttf_interpolatable/Roboto-Bold.ttf"
- fontpath2 = "instances/RobotoB-VF-instanceBold.ttf"
- ttfont1 = TTFont(fontpath1)
- ttfont2 = TTFont(fontpath2)
- pen1 = CocoaPen(ttfont1.getGlyphSet())
- pen2 = CocoaPen(ttfont2.getGlyphSet())
- color1 = (1, 0, 0, 0.5)
- color2 = (0, 0, 1, 0.5)
- unequalmetrics = []
- for char in charset:
- pen1.path = NSBezierPath.bezierPath()
- pen2.path = NSBezierPath.bezierPath()
- glyph1 = pen1.glyphSet[char]
- glyph2 = pen2.glyphSet[char]
- glyph1.draw(pen1)
- glyph2.draw(pen2)
-
- newPage(2500, 2500)
- fill(None)
- strokeWidth(2)
- offsetX = 500
- offsetY = 500
- translate(offsetX, offsetY)
-
- # baseline
- stroke(0, 0, 0, 0.25)
- line((-offsetX, 0), (width()-offsetX, 0))
-
- # glyph 1
- stroke(*color1)
- drawPath(pen1.path)
- line((0, -offsetY), (0, height()-offsetY))
- line((glyph1.width, -offsetY), (glyph1.width, 2000))
-
- # glyph 2
- stroke(*color2)
- drawPath(pen2.path)
- line((0, -offsetY), (0, height()-offsetY))
- line((glyph2.width, -offsetY), (glyph2.width, 2000))
-
- stroke(None)
- fontSize(36)
- fill(0, 0, 0, 0.5)
- text("width", (-offsetX+50, -100))
-
- fill(*color1)
- text(label1, (-offsetX+50, height()-offsetY-100))
- text(str(glyph1.width), (-offsetX+50, -150))
- fill(*color2)
- text(label2, (-offsetX+50, height()-offsetY-150))
- text(str(glyph2.width), (-offsetX+50, -200))
-
- metricsdiff = glyph2.width - glyph1.width
- if metricsdiff != 0:
- unequalmetrics.append((char, metricsdiff))
- newPage(2000, 2000)
- fs = FormattedString(fontSize=30, font="Menlo")
- for c, m in unequalmetrics:
- t = "%s %s\n" % (c, m)
- fs.append(t)
- textBox(fs, (50, 0, width()-100, height()-50))
- saveImage(["compareInstances-Bold.pdf"])
|