FIF Bindings for FontCongig

fontconfig的Python项目详细描述


这个包试图成为fontconfig的完整python绑定。

这个包包含两个模块:低级_fontconfig,即 与c api和fc匹配,后者是更高的抽象。

C API:

int FcGetVersion(void);

_fontconfig

_fontconfig.FcGetVersion()

fc

fc.get_version()

安装

此包需要enum34包。通过pypi安装:

$ pip install enum34

或者使用分发包:

$ apt-get install python-enum34

要编译_fontconfig扩展,下面的c头是 必需:

#include<fontconfig/fontconfig.h>
#include<fontconfig/fcfreetype.h>
#include<ft2build.h>
#includeFT_FREETYPE_H  // usually <freetype/freetype.h>

还有包裹cffi。在Debian中,以下软件包就足够了:

$ apt-get install python-cffi libfontconfig1-dev libfreetype6-dev

最后,要安装软件包本身:

$ pip install fontconfig

_fontconfig模块

模块_fontconfig导出几个simbol来测试功能 基础库的。这些是:

  • PYFC_HAS_DirCacheRescan
  • PYFC_HAS_FcRange

用法:

>>> import_fontconfig>>> print_fontconfig.lib.FcGetVersion()21100
>>> _fontconfig.lib.FcInit()# init the library1
>>> config=_fontconfig.lib.FcConfigGetCurrent()>>> sl=_fontconfig.lib.FcConfigGetConfigDirs(config)>>> whileTrue:... s=_fontconfig.lib.FcStrListNext(sl)... ifnots:... 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模块

fc模块将是更高的抽象模块,但它仍然是 不完整。

用法:

与上面相同的片段:

>>> importfc>>> 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', ...]

再举几个例子:

>>> 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")>>> forfontinconfig.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
...

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java WebClient请求级别超时抛出名为default onErrorDropped的运算符   java JAXB外部绑定文件错误   Freemarker中的java转义宏参数值   java正在同步来自不同对象{已编辑}的线程   java如何在另一个类上更新活动中的元素   java Hibernate连接查询   java可以使用Apache Crunch创建类似于图形的数据结构吗?   java在JLabel的开头加上3个点   java 安卓应用程序显示线程错误   java@RequestBody在Spring中总是空的   java Android异步任务永远不会结束   具有多个属性的java Jaxws枚举   java中的安卓 Stripe InvalidRequestException   多线程java。util。非多线程程序中的ConcurrentModificationException   Minecraft Java插件如何删除HashMap中存储的所有块   空Java字符串的大小   从AJP连接器请求检索Shibboleth属性的java   oracle11g将Java类文件加载到Oracle数据库