Spec-Zone.ru › Matplotlib 3.2

matplotlib.afm

Это интерфейс Python для файлов шрифтовых метрик Adobe. Хотя существует несколько других реализаций на Python, и они могут быть более полными, было решено не использовать их, потому что они были либо:

  1. защищены авторским правом или использовали лицензию, несовместимую с BSD
  2. имели слишком много зависимостей, и потребовалась независимая библиотека
  3. делали больше, чем необходимо, и было проще написать всё заново, чем разбираться, как получить только нужное.

Он довольно прост в использовании и требует только встроенных библиотек Python:

>>> 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) [source]

Базы: object

Обработать файл AFM в объекте файла fh.

property family_name

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

get_angle(self) [source]

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

get_bbox_char(self, c, isord=False) [source]
get_capheight(self) [source]

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

get_familyname(self) [source]

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

get_fontname(self) [source]

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

get_fullname(self) [source]

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

get_height_char(self, c, isord=False) [source]

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

get_horizontal_stem_width(self) [source]

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

get_kern_dist(self, c1, c2) [source]

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

get_kern_dist_from_name(self, name1, name2) [source]

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

get_name_char(self, c, isord=False) [source]

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

get_str_bbox(self, s) [source]

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

get_str_bbox_and_descent(self, s) [source]

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

get_underline_thickness(self) [source]

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

get_vertical_stem_width(self) [source]

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

get_weight(self) [source]

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

get_width_char(self, c, isord=False) [source]

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

get_width_from_char_name(self, name) [source]

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

get_xheight(self) [source]

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

string_width_height(self, s) [source]

Возвращает ширину строки (включая керинг) и высоту строки как кортеж (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.2.2/api/afm_api.html

Spec-Zone.ru

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