Spec-Zone.ru › Matplotlib 3.3

matplotlib.afm

Интерфейс Python к файлам метрик шрифтов Adobe.

Несмотря на то, что существует ряд других реализаций на 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]

Как и в спецификации формата файла метрик шрифтов Adobe, все размеры задаются в единицах 1/1000 от масштабного коэффициента (размер шрифта) используемого шрифта.

class matplotlib.afm.AFM(fh) [исходный код]

Базовые классы: object

Разбор файла AFM в объекте файла fh.

property family_name

Имя семейства шрифтов, например, 'Times'.

get_angle(self) [исходный код]

Возвращает угол шрифта как число с плавающей точкой.

get_bbox_char(self, c, isord=False) [исходный код]
get_capheight(self) [исходный код]

Возвращает высоту заглавной буквы как число с плавающей точкой.

get_familyname(self) [исходный код]

Возвращает имя семейства шрифтов, например, 'Times'.

get_fontname(self) [исходный код]

Возвращает имя шрифта, например, 'Times-Roman'.

get_fullname(self) [исходный код]

Возвращает полное имя шрифта, например, 'Times-Roman'.

get_height_char(self, c, isord=False) [исходный код]

Получает высоту рамки (чернил) символа c (пробел — 0).

get_horizontal_stem_width(self) [исходный код]

Возвращает стандартную горизонтальную ширину стержня как число с плавающей точкой или None, если она не указана в файле AFM.

get_kern_dist(self, c1, c2) [исходный код]

Возвращает расстояние между парами символов (возможно, 0) для символов c1 и c2.

get_kern_dist_from_name(self, name1, name2) [исходный код]

Возвращает расстояние между парами символов (возможно, 0) для символов name1 и name2.

get_name_char(self, c, isord=False) [исходный код]

Получает имя символа, например, ';' — 'точка с запятой'.

get_str_bbox(self, s) [исходный код]

Возвращает рамку строки.

get_str_bbox_and_descent(self, s) [исходный код]

Возвращает рамку строки и максимальный спуск.

get_underline_thickness(self) [исходный код]

Возвращает толщину подчеркивания как число с плавающей точкой.

get_vertical_stem_width(self) [исходный код]

Возвращает стандартную вертикальную ширину стержня как число с плавающей точкой или None, если она не указана в файле AFM.

get_weight(self) [исходный код]

Возвращает толщину шрифта, например, 'Bold' или 'Roman'.

get_width_char(self, c, isord=False) [исходный код]

Получает ширину символа из поля метрики символа WX.

get_width_from_char_name(self, name) [исходный код]

Получает ширину символа по имени символа типа 1.

get_xheight(self) [исходный код]

Возвращает высоту x как число с плавающей точкой.

string_width_height(self, 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'.

© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.3.3/api/afm_api.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API