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 масштабного коэффициента (размер шрифта) используемого шрифта.
- classmatplotlib._afm.AFM(fh)[source]
-
Bases:
objectРазбор файла AFM в объекте файла fh.
- propertyfamily_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 как число с плавающей точкой.
- propertypostscript_name
- string_width_height(s)[source]
-
Возвращает ширину строки (включая кернинг) и высоту строки в виде кортежа (w, h).
- classmatplotlib._afm.CharMetrics(width, name, bbox)[source]
-
Bases:
tupleПредставляет метрики символа.
Примечания
В настоящее время поля описывают только подмножество информации о метриках символов, определённых в стандарте AFM.
Создаёт новый экземпляр CharMetrics(ширина, имя, рамка)
- bbox
-
Рамка символа (B) в виде кортежа (llx, lly, urx, ury).
- name
-
Имя символа (N).
- width
-
Ширина символа (WX).
- classmatplotlib._afm.CompositePart(name, dx, dy)[source]
-
Bases:
tupleПредставляет информацию о составном элементе составного символа.
Создаёт новый экземпляр CompositePart(имя, dx, dy)
- dx
-
Смещение по оси x элемента от начала координат.
- dy
-
Смещение по оси y элемента от начала координат.
- name
-
Имя элемента, например, 'acute'.
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.8.4/api/afm_api.html