webdings
This commit is contained in:
@@ -30,10 +30,12 @@ if __name__ == '__main__':
|
|||||||
print("Units "+str(f.units_per_em))
|
print("Units "+str(f.units_per_em))
|
||||||
print("MacStyle "+str(f.tables[b'head'].mac_style))
|
print("MacStyle "+str(f.tables[b'head'].mac_style))
|
||||||
for c in chars:
|
for c in chars:
|
||||||
glyph = f.char_to_glyph(c)
|
try:
|
||||||
print(("Width %d %d %d " % (c, f.glyph_metrics[glyph][0], f.glyph_metrics[glyph][1]))+chr(c))
|
glyph = f.char_to_glyph(c)
|
||||||
for c2 in chars:
|
print(("Width %d %d %d " % (c, f.glyph_metrics[glyph][0], f.glyph_metrics[glyph][1]))+chr(c))
|
||||||
r = f.char_to_glyph(c2)
|
for c2 in chars:
|
||||||
if (glyph,r) in f.glyph_kern:
|
r = f.char_to_glyph(c2)
|
||||||
print("Kern %d %d %d" % (c, c2, f.glyph_kern[(glyph,r)]))
|
if (glyph,r) in f.glyph_kern:
|
||||||
|
print("Kern %d %d %d" % (c, c2, f.glyph_kern[(glyph,r)]))
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|||||||
30
dumpscad.py
30
dumpscad.py
@@ -20,6 +20,7 @@ if __name__ == '__main__':
|
|||||||
print("Usage: {} <font filename>".format(sys.argv[0]))
|
print("Usage: {} <font filename>".format(sys.argv[0]))
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
|
t = TTFile(sys.argv[1])
|
||||||
t = TTFile(sys.argv[1])
|
t = TTFile(sys.argv[1])
|
||||||
if not t.is_valid:
|
if not t.is_valid:
|
||||||
print("Invalid")
|
print("Invalid")
|
||||||
@@ -27,9 +28,9 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
f = t.faces[0]
|
f = t.faces[0]
|
||||||
glyphs = {}
|
glyphs = {}
|
||||||
for c in range(0,65536):
|
for c in range(0, 65536):
|
||||||
try:
|
try:
|
||||||
g = f.char_to_glyph(c)
|
g = f.char_to_glyph(c+0xF000 if f.name == "Webdings" and c<256 else c)
|
||||||
if g:
|
if g:
|
||||||
glyphs[c] = g
|
glyphs[c] = g
|
||||||
except:
|
except:
|
||||||
@@ -62,16 +63,19 @@ if __name__ == '__main__':
|
|||||||
f.tables[b'os2'].typo_line_gap,
|
f.tables[b'os2'].typo_line_gap,
|
||||||
f.units_per_em))
|
f.units_per_em))
|
||||||
for c in chars:
|
for c in chars:
|
||||||
glyph = f.char_to_glyph(c)
|
try:
|
||||||
box = glyphBox(f,glyph)
|
glyph = glyphs[c]
|
||||||
line = " [%s,%d,%d,%d,%d,%d,%d,[" % ( describeChar(c), f.glyph_metrics[glyph][0],
|
box = glyphBox(f,glyph)
|
||||||
f.glyph_metrics[glyph][1], box[0], box[1], box[2], box[3] )
|
line = " [%s,%d,%d,%d,%d,%d,%d,[" % ( describeChar(c), f.glyph_metrics[glyph][0],
|
||||||
kerns=[]
|
f.glyph_metrics[glyph][1], box[0], box[1], box[2], box[3] )
|
||||||
for c2 in chars:
|
kerns=[]
|
||||||
r = f.char_to_glyph(c2)
|
for c2 in chars:
|
||||||
if (glyph,r) in f.glyph_kern:
|
r = f.char_to_glyph(c2)
|
||||||
kerns.append("[%s,%d]" % (describeChar(c2), f.glyph_kern[(glyph,r)]))
|
if (glyph,r) in f.glyph_kern:
|
||||||
line += ','.join(kerns)+"]],"
|
kerns.append("[%s,%d]" % (describeChar(c2), f.glyph_kern[(glyph,r)]))
|
||||||
print(line)
|
line += ','.join(kerns)+"]],"
|
||||||
|
print(line)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
print(" ]\n];\n")
|
print(" ]\n];\n")
|
||||||
|
|
||||||
|
|||||||
@@ -451,7 +451,7 @@ class TTF_cmap(PackedFormat):
|
|||||||
break
|
break
|
||||||
|
|
||||||
def char_to_glyph(self, char, fh):
|
def char_to_glyph(self, char, fh):
|
||||||
for p in self.PREFS:
|
for p in self.tables: #PREFS:
|
||||||
if p in self.tables and self.tables[p].has_map_data:
|
if p in self.tables and self.tables[p].has_map_data:
|
||||||
for rng in self.tables[p].map_data.ranges:
|
for rng in self.tables[p].map_data.ranges:
|
||||||
if rng.end < char:
|
if rng.end < char:
|
||||||
|
|||||||
Reference in New Issue
Block a user