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]

与 Adob​​e Font Metrics 文件格式规范一样,所有尺寸均以所使用字体的比例因子(磅值)的 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_horizo​​ntal_stem_width ( ) [来源] #

将标准水平茎宽度返回为浮点数,如果 AFM 文件中未指定,则返回无。

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 文件中未指定,则返回无。

get_weight ( ) [来源] #

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

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

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

get_width_from_char_name ( name ) [来源] #

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

get_xheight ( ) [来源] #

将 xheight 返回为浮点数。

属性 postscript_name #
string_width_height ( s ) [来源] #

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

matplotlib._afm。CharMetrics ( width , name , bbox ) [source] #

基地:tuple

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

笔记

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

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

盒子#

字符 (B) 的 bbox 作为元组 ( llx , lly , urx , ury )。

名字#

角色名称 (N)。

宽度#

字符宽度 (WX)。

matplotlib._afm。CompositePart ( name , dx , dy ) [来源] #

基地:tuple

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

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

dx #

零件从原点的 x 位移。

dy #

零件从原点的 y 位移。

名字#

零件名称,例如“acute”。