Spec-Zone.ru › Matplotlib 3.4

matplotlib.afm

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

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

  1. были защищены авторским правом или использовали лицензию, несовместимую с BSD
  2. имели слишком много зависимостей, и нужен был независимый lib
  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 от масштабного коэффициента (размер шрифта) используемого шрифта.

класс matplotlib.afm.AFM(fh)[source]

Базируется на object

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

свойство family_name

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

get_angle()[source]

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

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

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

get_familyname()[source]

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

get_fontname()[source]

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

get_fullname()[source]

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

get_height_char(c, isord=False)[source]

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

get_horizontal_stem_width()[source]

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

get_kern_dist(c1, c2)[source]

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

get_kern_dist_from_name(name1, name2)[source]

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

get_name_char(c, isord=False)[source]

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

get_str_bbox(s)[source]

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

get_str_bbox_and_descent(s)[source]

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

get_underline_thickness()[source]

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

get_vertical_stem_width()[source]

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

get_weight()[source]

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

get_width_char(c, isord=False)[source]

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

get_width_from_char_name(name)[source]

Получить ширину символа из имени символа type1.

get_xheight()[source]

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

свойство postscript_name
string_width_height(s)[source]

Возвращает ширину строки (включая кернинг) и высоту строки в виде кортежа (w, h).

класс matplotlib.afm.CharMetrics(width, name, bbox)

Базируется на tuple

Представляет метрики символа для одного символа.

Примечания

Поля в настоящее время описывают только подмножество информации о метрике символов, определенной в стандарте AFM.

Создает новый экземпляр CharMetrics(width, name, bbox)

bbox

Рамка символа (B) в виде кортежа (llx, lly, urx, ury).

name

Имя символа (N).

width

Ширина символа (WX).

END_OF_DOCUMENT_MARKER
class matplotlib.afm.CompositePart(name, dx, dy)

Основы: tuple

Представляет информацию об элементе составного символа.

Создаёт новый экземпляр CompositePart(name, dx, dy)

dx

Смещение по оси x части от начала координат.

dy

Смещение по оси y части от начала координат.

name

Имя части, например, 'острая'.

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

Spec-Zone.ru

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