matplotlib.afm#

注意

该模块被视为内部模块。

它的使用已被弃用,将在未来版本中移除。

Adobe 字体度量文件的 Python 接口。

尽管存在许多其他 Python 实现,并且可能比这个更完整,但决定不采用它们,因为它们要么是:

  1. 受版权保护或使用了非BSD兼容的许可证

  2. 依赖项过多,需要一个独立的库。

  3. 做得比需要的更多,重新写一遍反而比弄清楚如何只得到所需的内容更容易。

它使用起来非常简单,并且没有外部依赖:

>>> import matplotlib as mpl
>>> from pathlib import Path
>>> afm_path = Path(mpl.get_data_path(), 'fonts', 'afm', 'ptmr8a.afm')
>>>
>>> from matplotlib.afm import AFM
>>> with afm_path.open('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为单位给出。

class matplotlib._afm.AFM(fh)[源代码][源代码]#

基类:object

解析文件对象 fh 中的 AFM 文件。

property family_name#

字体族名称,例如,'Times'。

get_angle()[源代码][源代码]#

返回字体角度为浮点数。

get_bbox_char(c, isord=False)[源代码][源代码]#
get_capheight()[源代码][源代码]#

返回帽高作为浮点数。

get_familyname()[源代码][源代码]#

返回字体族名称,例如,'Times'。

get_fontname()[源代码][源代码]#

返回字体名称,例如,'Times-Roman'。

get_fullname()[源代码][源代码]#

返回字体全名,例如,'Times-Roman'。

get_height_char(c, isord=False)[源代码][源代码]#

获取字符 c 的边界框(墨水)高度(空格为 0)。

get_horizontal_stem_width()[源代码][源代码]#

返回标准的水平主干宽度作为浮点数,如果未在AFM文件中指定,则返回 None

get_kern_dist(c1, c2)[源代码][源代码]#

返回字符 c1c2 之间的字距对距离(可能为0)。

get_kern_dist_from_name(name1, name2)[源代码][源代码]#

返回字符 name1name2 之间的字距(可能为0)。

get_name_char(c, isord=False)[源代码][源代码]#

获取字符的名称,例如,';' 是 '分号'。

get_str_bbox(s)[源代码][源代码]#

返回字符串的边界框。

get_str_bbox_and_descent(s)[源代码][源代码]#

返回字符串的边界框和最大下降值。

get_underline_thickness()[源代码][源代码]#

返回下划线厚度为浮点数。

get_vertical_stem_width()[源代码][源代码]#

返回标准垂直笔画宽度为浮点数,如果AFM文件中未指定,则返回 None

get_weight()[源代码][源代码]#

返回字体粗细,例如,'Bold' 或 'Roman'。

get_width_char(c, isord=False)[源代码][源代码]#

从字符度量 WX 字段获取字符的宽度。

get_width_from_char_name(name)[源代码][源代码]#

从type1字符名称获取字符的宽度。

get_xheight()[源代码][源代码]#

返回 x 高度为浮点数。

property postscript_name#

!! 由 numpydoc 处理 !!

string_width_height(s)[源代码][源代码]#

返回字符串的宽度(包括字距调整)和字符串高度,作为一个 (w, h) 元组。

class matplotlib._afm.CharMetrics(width, name, bbox)[源代码]#

基类:tuple

表示单个字符的字符度量。

注释

这些字段目前仅描述了 AFM 标准中定义的字符度量信息的一个子集。

创建 CharMetrics(width, name, bbox) 的新实例

bbox#

字符 (B) 的边界框作为一个元组 (llx, lly, urx, ury)。

name#

角色名称 (N)。

width#

字符宽度(WX)。

class matplotlib._afm.CompositePart(name, dx, dy)[源代码]#

基类:tuple

表示复合字符中复合元素的信息。

创建 CompositePart(name, dx, dy) 的新实例

dx#

部件从原点的x位移。

dy#

部件从原点的y方向位移。

name#

部分的名称,例如 'acute'。