Metadata-Version: 1.1
Name: fontconfig
Version: 0.1
Summary: CFFI bindings for fontconfig
Home-page: https://bitbucket.org/gm/fontconfig
Author: Marco Giusti
Author-email: marco.giusti@posteo.de
License: MIT
Description: ###########################
        CFFI binding for fontconfig
        ###########################
        
        This package try to be a complete python binding for fontconfig.
        
        This package contains two modules: the low level ``_fontconfig``\ , that
        matches the C APIs, and ``fc``\ , that is an higher abstraction over it.
        
        The C API::
        
           int FcGetVersion(void);
           
        in ``_fontconfig``::
        
           _fontconfig.FcGetVersion()
        
        in ``fc``::
        
           fc.get_version()
        
        Installation
        ============
        
        This package requires the `enum34`_ package. Install it via pypi:
        
        .. code-block:: console
        
           $ pip install enum34
        
        or use your distribution's package:
        
        .. code-block:: console
        
           $ apt-get install python-enum34
        
        To compile the ``_fontconfig`` extension, the following C headers are
        required:
        
        .. code-block:: C
        
           #include <fontconfig/fontconfig.h>
           #include <fontconfig/fcfreetype.h>
           #include <ft2build.h>
           #include FT_FREETYPE_H  // usually <freetype/freetype.h>
        
        and the package `cffi`_. In Debian the following packages are enough:
        
        .. code-block:: console
        
           $ apt-get install python-cffi libfontconfig1-dev libfreetype6-dev
        
        Finally, to install the package itself:
        
        .. code-block:: console
        
           $ pip install fontconfig
        
        .. _enum34: https://pypi.python.org/pypi/enum34
        .. _cffi: https://pypi.python.org/pypi/cffi
        
        ``_fontconfig`` module
        ======================
        
        The module ``_fontconfig`` exports few simbols to test the capabilities
        of the underlying library. These are:
        
        * ``PYFC_HAS_DirCacheRescan``
        * ``PYFC_HAS_FcRange``
        
        Usage:
        ------
        
        .. code-block:: pycon
        
           >>> import _fontconfig
           >>> print _fontconfig.lib.FcGetVersion()
           21100
           >>> _fontconfig.lib.FcInit()  # init the library
           1
           >>> config = _fontconfig.lib.FcConfigGetCurrent()
           >>> sl = _fontconfig.lib.FcConfigGetConfigDirs(config)
           >>> while True:
           ...  s = _fontconfig.lib.FcStrListNext(sl)
           ...  if not s:
           ...   break
           ...  print _fontconfig.ffi.string(s)  # doctest: +ELLIPSIS
           ...
           /usr/share/fonts
           /usr/X11R6/lib/X11/fonts
           /usr/local/share/fonts
           ...
           >>> _fontconfig.lib.FcStrListDone(sl)
        
        ``fc`` module
        =============
        
        The ``fc`` module would be an higher abstraction moudule but it is still
        uncomplete.
        
        Usage:
        ------
        
        The same snippet as above:
        
        .. code-block:: pycon
        
           >>> import fc
           >>> fc.get_version()  # fontconfig's version
           (2, 11, 0)
           >>> fc.init()
           >>> config = fc.FcConfig.get_current()
           >>> config.get_config_dirs()  # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE
           ['/usr/share/fonts', '/usr/X11R6/lib/X11/fonts',
           '/usr/local/share/fonts', ...]
        
        Few more examples:
        
        .. code-block:: pycon
        
           >>> fc.__version__  # python library's version
           '0.1'
           >>> pattern = config.get_fonts(fc.SetName.system)[0]
           >>> pattern.name_unparse()  # doctest: +ELLIPSIS
           '21 Kilobyte Salute:...'
           >>> config.get_font_dirs()  # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE
           ['/usr/share/fonts', '/usr/X11R6/lib/X11/fonts',
           '/usr/local/share/fonts', ...]
           >>> pat = fc.FcPattern.name_parse("dejavu serif")
           >>> for font in config.font_list(pat, [fc.PropertyName.file]):
           ...  print(font.name_unparse())  # doctest: +ELLIPSIS
           ...
           :file=/usr/share/fonts/truetype/dejavu/DejaVuSerif-BoldItalic.ttf
           :file=/usr/share/fonts/truetype/dejavu/DejaVuSerifCondensed.ttf
           ...
        
        
        .. vim:ft=rst:tw=72:et:sts=3:sw=3
        
Keywords: fontconfig,cffi
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Software Development :: Libraries
