matplotlib.afm
Интерфейс Python к файлам метрик шрифтов Adobe.
Несмотря на то, что существует ряд других реализаций на 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.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