How to access/create a dictionary mapping unicode values to glyphnames?
david_demainlalune last edited by gferreira
I am writing a script for a friend, who needs to quickly assess the amount of work required to create a font for a one time use. In other words, the font should only cover the range of characters found in a given text.
The script parses a text (expecting utf-8 encoding) and extracts all unique characters. If those characters belong to the default charset they should be marked in a "happy" color in the currenFont, if not they should be added to the currentFont, named with their unicode value, and marked with a less "happy color".
To test if a character belongs to the default charset, I check if there is a glyph with the corresponding unicode in the default charset. To do this, I build a dictionary mapping unicode value to glyph names. I gisted the build function here https://gist.github.com/david-demainlalune/6184788
The way I build this dictionary, creating a new font, and getting the list of all glyphs from the default charset seems slightly hacky to me and I was wondering if there is a better way of doing this? probably is… right under my nose, but I can't see it…
In advance many thanks
david_demainlalune last edited by
many thanks joanca : )
this is spot on what I needed
joanca last edited by gferreira
Probably this will work for you:
# -*- coding: utf-8 -*- from fontTools import agl txt = u"Àü" for c in txt: gname = agl.UV2AGL[ord(c)] uni = agl.AGL2UV[gname] print gname, uni