matplotlib._afm#

Adobe 字体度量 (AFM) 文件的 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.get_fontname()
'Times-Roman'

正如 Adobe 字体度量文件格式规范所述,所有尺寸均以所用字体比例因子(字号)的 1/1000 为单位给出。

class matplotlib._afm.AFM(fh)[source]#

基类: object

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

property family_name#

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

get_angle()[source]#

返回浮点型的字体倾斜角。

get_ascender()[source]#

返回浮点型的升部高度。

get_capheight()[source]#

返回浮点型的大写字母高度。

get_char_index(c)[source]#

返回对应于字符代码点的字形索引。

注意,对于 AFM 字体,我们将字形索引视为与代码点相同。

get_descender()[source]#

返回浮点型的降部高度。

get_familyname()[source]#

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

get_fontname()[source]#

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

get_fullname()[source]#

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

get_glyph_name(glyph_ind)[source]#

获取字形名称,例如 ord(';') 为 'semicolon'。

get_kern_dist_from_name(name1, name2)[source]#

返回字符 name1name2 的字距调整对距离(可能是 0)。

get_str_bbox_and_descent(s)[source]#

返回字符串的边界框和最大降部高度。

get_underline_thickness()[source]#

返回浮点型的下划线粗细。

get_weight()[source]#

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

get_width_char(c)[source]#

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

get_width_from_char_name(name)[source]#

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

get_xheight()[source]#

返回浮点型的 x 高度。

property postscript_name#
class matplotlib._afm.CharMetrics(width, name, bbox)[source]#

基类: NamedTuple

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

备注

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

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

bbox#

字符边界框 (B),形式为元组 (llx, lly, urx, ury)。

name#

字符名称 (N)。

width#

字符宽度 (WX)。

class matplotlib._afm.CompositePart(name, dx, dy)[source]#

基类: NamedTuple

表示组合字符的组成部分的信息。

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

dx#

该部分相对于原点的 x 位移。

dy#

该部分相对于原点的 y 位移。

name#

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

class matplotlib._afm.FontMetricsHeader[source]#

基类: TypedDict

Ascender#
CapHeight#
Capheight#
CharacterSet#
Characters#
Descender#
EncodingScheme#
FamilyName#
FontBBox#
FontName#
FullName#
IsFixedPitch#
ItalicAngle#
Notice#
StartCharMetrics#
StartFontMetrics#
StdHW#
StdVW#
UnderlinePosition#
UnderlineThickness#
Version#
Weight#
XHeight#