Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-backports > by-pkgid > a44f8c7e78ee9c5838c1fb080c9e7630 > files > 1164

python-matplotlib-doc-1.1.1-1mdv2010.1.noarch.rpm

.. _misc-font_indexing:

misc example code: font_indexing.py
===================================

[`source code <font_indexing.py>`_]

::

    """
    A little example that shows how the various indexing into the font
    tables relate to one another.  Mainly for mpl developers....
    
    """
    import matplotlib
    from matplotlib.ft2font import FT2Font, KERNING_DEFAULT, KERNING_UNFITTED, KERNING_UNSCALED
    
    
    
    #fname = '/usr/share/fonts/sfd/FreeSans.ttf'
    fname = matplotlib.get_data_path() + '/fonts/ttf/Vera.ttf'
    font = FT2Font(fname)
    font.set_charmap(0)
    
    codes = font.get_charmap().items()
    #dsu = [(ccode, glyphind) for ccode, glyphind in codes]
    #dsu.sort()
    #for ccode, glyphind in dsu:
    #    try: name = font.get_glyph_name(glyphind)
    #    except RuntimeError: pass
    #    else: print '% 4d % 4d %s %s'%(glyphind, ccode, hex(int(ccode)), name)
    
    
    
    # make a charname to charcode and glyphind dictionary
    coded = {}
    glyphd = {}
    for ccode, glyphind in codes:
        name = font.get_glyph_name(glyphind)
        coded[name] = ccode
        glyphd[name] = glyphind
    
    code =  coded['A']
    glyph = font.load_char(code)
    #print glyph.bbox
    print glyphd['A'], glyphd['V'], coded['A'], coded['V']
    print 'AV', font.get_kerning(glyphd['A'], glyphd['V'], KERNING_DEFAULT)
    print 'AV', font.get_kerning(glyphd['A'], glyphd['V'], KERNING_UNFITTED)
    print 'AV', font.get_kerning(glyphd['A'], glyphd['V'], KERNING_UNSCALED)
    print 'AV', font.get_kerning(glyphd['A'], glyphd['T'], KERNING_UNSCALED)
    

Keywords: python, matplotlib, pylab, example, codex (see :ref:`how-to-search-examples`)