Matplotlib is hiring a Research Software Engineering Fellow! See discourse for details. Apply by January 3, 2020
matplotlib.afm
¶这是一个到Adobe字体度量文件的python接口。尽管存在许多其他的python实现,而且可能比这更完整,但是决定不使用它们,因为它们要么是:
- 版权所有或使用了不兼容BSD的许可证
- 依赖关系太多,需要一个独立的lib
- 做的比需要的要多,重新写作比弄清楚如何得到需要的东西要容易。
它非常容易使用,只需要内置的python libs:
>>> from matplotlib import rcParams
>>> import os.path
>>> afm_fname = os.path.join(rcParams['datapath'],
... 'fonts', 'afm', 'ptmr8a.afm')
>>>
>>> from matplotlib.afm import AFM
>>> with open(afm_fname, 'rb') as fh:
... afm = AFM(fh)
>>> afm.string_width_height('What the heck?')
(6220.0, 694)
>>> afm.get_fontname()
'Times-Roman'
>>> afm.get_kern_dist('A', 'f')
0
>>> afm.get_kern_dist('A', 'y')
-92.0
>>> afm.get_bbox_char('!')
[130, -9, 238, 676]
与Adobe字体度量文件格式规范一样,所有尺寸均以所用字体的比例因子(点大小)的1/1000为单位给出。
matplotlib.afm.
CharMetrics
¶基类:tuple
表示单个字符的字符度量。
笔记
这些字段目前只描述AFM标准中定义的字符度量信息的子集。
创建charmetrics的新实例(宽度、名称、bbox)
bbox
¶作为元组的字符(b)的bbox( llx , lly , urx , ury )
name
¶字符名(n)。
width
¶字符宽度(wx)。