matplotlib._afm
一个用于 Adobe 字体度量文件 (Adobe Font Metrics Files) 的 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 为单位。
-
类 matplotlib._afm.AFM(fh)[源码]
基类: object
解析文件对象 fh 中的 AFM 文件。
-
属性 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)[源码]
获取字符的名称,即 ';' 是 'semicolon'。
-
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 高度。
-
属性 postscript_name
-
string_width_height(s)[源码]
返回字符串宽度(包括字距调整)和字符串高度,以 (*w*, *h*) 元组形式。
-
类 matplotlib._afm.CharMetrics(width, name, bbox)[源码]
基类:tuple
表示单个字符的字符度量。
备注
这些字段目前只描述了 AFM 标准中定义的字符度量信息的一个子集。
创建 CharMetrics(width, name, bbox) 的新实例
-
bbox
字符的边界框 (B),以元组形式 (*llx*, *lly*, *urx*, *ury*)。
-
name
字符名称 (N)。
-
width
字符宽度 (WX)。
-
类 matplotlib._afm.CompositePart(name, dx, dy)[源码]
基类:tuple
表示复合字符的复合元素信息。
创建 CompositePart(name, dx, dy) 的新实例
-
dx
该部分从原点的 x 位移。
-
dy
该部分从原点的 y 位移。
-
name
该部分的名称,例如 'acute'。