def getGlyphInfos(self): result = [] # glyphIndexToNameMap = {} glyphToCharacterMap = self.getGlyphIndexToCharacterMap() if self.ftFont.has_glyph_names: for glyphIndex in self.getGlyphIndices(): glyphNameBuffer = ' '*256 error = freetype.FT_Get_Glyph_Name(self.ftFont._FT_Face, glyphIndex, glyphNameBuffer, len(glyphNameBuffer) - 1) if error: raise freetype.FT_Exception(error) glyphInfo = TFSMap() glyphInfo.glyphIndex = glyphIndex glyphInfo.glyphName = glyphNameBuffer.strip()[:-1] # print 'glyphName', glyphIndex, glyphName, len(glyphName) glyphInfo.characterCode = None if glyphIndex in glyphToCharacterMap: glyphInfo.characterCode = glyphToCharacterMap[glyphIndex] result.append(glyphInfo) else: for glyphIndex, characterCode in glyphToCharacterMap.items(): glyphInfo = TFSMap() glyphInfo.glyphIndex = glyphIndex glyphInfo.glyphName = getUnicodeCharacterName(characterCode) glyphInfo.characterCode = characterCode # glyphInfoMap[glyphIndex] = glyphInfo result.append(glyphInfo) return result
def getGlyphInfos(self): result = [] # glyphIndexToNameMap = {} glyphToCharacterMap = self.getGlyphIndexToCharacterMap() if self.ftFont.has_glyph_names: for glyphIndex in self.getGlyphIndices(): glyphNameBuffer = ' ' * 256 error = freetype.FT_Get_Glyph_Name(self.ftFont._FT_Face, glyphIndex, glyphNameBuffer, len(glyphNameBuffer) - 1) if error: raise freetype.FT_Exception(error) glyphInfo = TFSMap() glyphInfo.glyphIndex = glyphIndex glyphInfo.glyphName = glyphNameBuffer.strip()[:-1] # print 'glyphName', glyphIndex, glyphName, len(glyphName) glyphInfo.characterCode = None if glyphIndex in glyphToCharacterMap: glyphInfo.characterCode = glyphToCharacterMap[glyphIndex] result.append(glyphInfo) else: for glyphIndex, characterCode in glyphToCharacterMap.items(): glyphInfo = TFSMap() glyphInfo.glyphIndex = glyphIndex glyphInfo.glyphName = getUnicodeCharacterName(characterCode) glyphInfo.characterCode = characterCode # glyphInfoMap[glyphIndex] = glyphInfo result.append(glyphInfo) return result