matplotlib.afm
注意
该模块被视为内部模块。
它的使用已被弃用,将在未来版本中移除。
Adobe 字体度量文件的 Python 接口。
尽管存在许多其他 Python 实现,并且可能比这个更完整,但决定不采用它们,因为它们要么是:
受版权保护或使用了非BSD兼容的许可证
依赖项过多,需要一个独立的库。
做得比需要的更多,重新写一遍反而比弄清楚如何只得到所需的内容更容易。
它使用起来非常简单,并且没有外部依赖:
>>> 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)[源代码][源代码]
返回字符 c1 和 c2 之间的字距对距离(可能为0)。
-
get_kern_dist_from_name(name1, name2)[源代码][源代码]
返回字符 name1 和 name2 之间的字距(可能为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'。