.. only:: html
.. note::
:class: sphx-glr-download-link-note
Click :ref:`here ` to download the full example code
.. rst-class:: sphx-glr-example-title
.. _sphx_glr_gallery_misc_ftface_props.py:
===============
Font properties
===============
This example lists the attributes of an `.FT2Font` object, which describe
global font properties. For individual character metrics, use the `.Glyph`
object, as returned by `.load_char`.
.. rst-class:: sphx-glr-script-out
Out:
.. code-block:: none
Num faces : 1
Num glyphs : 5343
Family name : DejaVu Sans
Style name : Oblique
PS name : DejaVuSans-Oblique
Num fixed : 0
Bbox : (-2080, -717, 3398, 2187)
EM : 2048
Ascender : 1901
Descender : -483
Height : 2384
Max adv width : 3461
Max adv height : 2384
Underline pos : -175
Underline thickness : 90
Italic : True
Bold : False
Scalable : True
Fixed sizes : False
Fixed width : False
SFNT : False
Horizontal : False
Vertical : False
Kerning : False
Fast glyphs : False
Multiple masters : False
Glyph names : False
External stream : False
|
.. code-block:: default
import os
import matplotlib
import matplotlib.ft2font as ft
font = ft.FT2Font(
# Use a font shipped with Matplotlib.
os.path.join(matplotlib.get_data_path(),
'fonts/ttf/DejaVuSans-Oblique.ttf'))
print('Num faces :', font.num_faces) # number of faces in file
print('Num glyphs :', font.num_glyphs) # number of glyphs in the face
print('Family name :', font.family_name) # face family name
print('Style name :', font.style_name) # face style name
print('PS name :', font.postscript_name) # the postscript name
print('Num fixed :', font.num_fixed_sizes) # number of embedded bitmap in face
# the following are only available if face.scalable
if font.scalable:
# the face global bounding box (xmin, ymin, xmax, ymax)
print('Bbox :', font.bbox)
# number of font units covered by the EM
print('EM :', font.units_per_EM)
# the ascender in 26.6 units
print('Ascender :', font.ascender)
# the descender in 26.6 units
print('Descender :', font.descender)
# the height in 26.6 units
print('Height :', font.height)
# maximum horizontal cursor advance
print('Max adv width :', font.max_advance_width)
# same for vertical layout
print('Max adv height :', font.max_advance_height)
# vertical position of the underline bar
print('Underline pos :', font.underline_position)
# vertical thickness of the underline
print('Underline thickness :', font.underline_thickness)
for style in ('Italic',
'Bold',
'Scalable',
'Fixed sizes',
'Fixed width',
'SFNT',
'Horizontal',
'Vertical',
'Kerning',
'Fast glyphs',
'Multiple masters',
'Glyph names',
'External stream'):
bitpos = getattr(ft, style.replace(' ', '_').upper()) - 1
print('%-17s:' % style, bool(font.style_flags & (1 << bitpos)))
.. _sphx_glr_download_gallery_misc_ftface_props.py:
.. only :: html
.. container:: sphx-glr-footer
:class: sphx-glr-footer-example
.. container:: sphx-glr-download sphx-glr-download-python
:download:`Download Python source code: ftface_props.py `
.. container:: sphx-glr-download sphx-glr-download-jupyter
:download:`Download Jupyter notebook: ftface_props.ipynb `
.. only:: html
.. rst-class:: sphx-glr-signature
Keywords: matplotlib code example, codex, python plot, pyplot
`Gallery generated by Sphinx-Gallery
`_