This example shows how to set a line of text using glyphs from a UFO font.
In order to set text on the page, we need to convert a string of characters into a list of glyph names. This is done using the font’s character map, a dictionary mapping unicode values to glyph names.
As each glyph is drawn, the origin position is shifted horizontally for the next glyph.
# define the text we want to set txt = "hãmbürgêfóns" # get the current font f = CurrentFont() # get the font’s character map charMap = f.getCharacterMapping() # define the document size size('A4Landscape') # move to origin translate(50, 250) # set scale scale(0.1) # iterate over the characters in text for char in txt: # get unicode value for character uni = ord(char) # get glyph names for unicode value glyphNames = charMap.get(uni) # skip glyphs which are not in the font if not glyphNames: continue # draw glyph glyph = f[glyphNames] drawGlyph(glyph) # move position to next glyph translate(glyph.width, 0)
This example could be extended to support line breaks, to allow the text to reflow inside the page.