matplotlib._afm#
Adobe 字体度量 (AFM) 文件的 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.get_fontname()
'Times-Roman'
正如 Adobe 字体度量文件格式规范所述,所有尺寸均以所用字体比例因子(字号)的 1/1000 为单位给出。
- class matplotlib._afm.AFM(fh)[source]#
基类:
object解析文件对象 fh 中的 AFM 文件。
- property family_name#
字体族名称,例如 'Times'。
- 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#