afm (Интерфейс метрик шрифтов Adobe)
matplotlib.afm
Это интерфейс Python для файлов метрик шрифтов Adobe. Несмотря на то, что существует ряд других реализаций на Python, и возможно, более полных, было решено не использовать их, потому что они были:
- защищены авторским правом или использовали лицензию, несовместимую с BSD
- имели слишком много зависимостей, и требовалась независимая библиотека
- делали больше, чем необходимо, и было проще написать всё заново, чем разбираться, как получить только необходимое.
Он достаточно прост в использовании и требует только встроенных библиотек Python:
>>> from matplotlib import rcParams
>>> import os.path
>>> afm_fname = os.path.join(rcParams['datapath'],
... 'fonts', 'afm', 'ptmr8a.afm')
>>>
>>> from matplotlib.afm import AFM
>>> with open(afm_fname) 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]
-
class matplotlib.afm.AFM(fh) -
Основывается на:
objectРазбор файла AFM в файловом объекте fh
-
family_name
-
get_angle() -
Возвращает угол шрифта как число с плавающей точкой
-
get_bbox_char(c, isord=False)
-
get_capheight() -
Возвращает высоту прописной буквы как число с плавающей точкой
-
get_familyname() -
Возвращает имя семейства шрифтов, например, «Times»
-
get_fontname() -
Возвращает имя шрифта, например, «Times-Roman»
-
get_fullname() -
Возвращает полное имя шрифта, например, «Times-Roman»
-
get_height_char(c, isord=False) -
Получает высоту символа c из области отображения. Это высота чернил (пробелы равны 0)
-
get_horizontal_stem_width() -
Возвращает стандартную ширину горизонтального стебля как число с плавающей точкой или None, если это не указано в файле AFM.
-
get_kern_dist(c1, c2) -
Возвращает расстояние пар кернинга (возможно, 0) для символов c1 и c2
-
get_kern_dist_from_name(name1, name2) -
Возвращает расстояние пар кернинга (возможно, 0) для символов name1 и name2
-
get_name_char(c, isord=False) -
Получает имя символа, например, ‘;’ — это «точка с запятой»
-
get_str_bbox(s) -
Возвращает прямоугольник отображения строки
-
get_str_bbox_and_descent(s) -
Возвращает прямоугольник отображения строки
-
get_underline_thickness() -
Возвращает толщину подчеркивания как число с плавающей точкой
-
get_vertical_stem_width() -
Возвращает стандартную ширину вертикального стебля как число с плавающей точкой или None, если это не указано в файле AFM.
-
get_weight() -
Возвращает вес шрифта, например, «Жирный» или «Римский»
-
get_width_char(c, isord=False) -
Получает ширину символа из поля метрики символа WX
-
get_width_from_char_name(name) -
Получает ширину символа по имени символа type1
-
get_xheight() -
Возвращает x-высоту как число с плавающей точкой
-
string_width_height(s) -
Возвращает ширину строки (включая кернинг) и высоту строки в виде кортежа (w, h).
-
-
matplotlib.afm.parse_afm(fh) -
Разбор файла метрик шрифта Adobe в файловом дескрипторе fh. Возвращаемое значение — кортеж (dhead, dcmetrics, dkernpairs, dcomposite), где dhead —
_parse_header()словарь, dcmetrics —_parse_composites()словарь, dkernpairs —_parse_kern_pairs()словарь (возможно, {}), а dcomposite —_parse_composites()словарь (возможно, {})
© 2012–2017 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
http://matplotlib.org/2.1.0/api/afm_api.html