|
@@ -0,0 +1,83 @@
|
|
|
+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"])
|
|
|
+
|
|
|
+
|