Работа с TrueType шрифтове
Работа с TrueType шрифтове
Това ръководство показва как да заредите TrueType шрифтове, да проверявате данните от бинарната таблица им, четете сурови байти на таблицата и създавайте статични инстанции от променливи шрифт с помощта на TtfInstancer.
TrueType (TTF) шрифтовете са най-често срещаният формат на настолен и уеб шрифт. Aspose.Font FOSS за Python експозиции TtfFont за достъп до таблични данни, специфични за ТТФ, извличане на гликови кърпички;, и променливо управление на осната линия.
Зареждане на TTF шрифт
FontLoader.open() автоматично открива формат TTF и връща a TtfFontВръщаният екземпляр предоставя достъп до специфични за TTF характеристики като: ttf_tables, get_table_bytes(), и данни за променливата ос на шрифта.
from aspose_font.loader import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name, font.num_glyphs, "glyphs")Достъп до таблици за ТТФ
TtfFont.ttf_tables излага на опасността от TtfTableSet с наименовани свойства за общи таблици.
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
tables = ttf_font.ttf_tables
print("kern table present:", tables.kern is not None)Необработени битове от таблицата
Използване на: TtfFont.get_table_bytes(tag) да се извличат сурови данни от двоична таблица и TtfFont.set_table_bytes(tag, data) да пише модифицирани таблични байтове.
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
raw_cmap = ttf_font.get_table_bytes("cmap")Изменливи инстанции на шрифта
TtfFont.get_axis() връща информация за ос. TtfInstancer.instantiate() произвежда статичен пример от променлив шрифт на определени координати на ос.
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont
from aspose_font.ttf.instancer import TtfInstancer
ttf_font: TtfFont = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
# Get a static instance at wght=700, wdth=75
instance = TtfInstancer.instantiate(ttf_font, {"wght": 700.0, "wdth": 75.0})Съвети и най-добри практики
- Винаги използвайте:
isinstance(font, TtfFont)преди да влезете в него.ttf_tablesили с други:get_table_bytes() - Използване на:
TtfTableSet.kernда провери наличността на ядрата преди четенето на двойки от ядрени. - Използването на променлив шрифт създава нов обект за шрифтове; оригиналът е непроменен.
Снимка на API референтна информация
| Клас / метод | Описание на състоянието |
|---|---|
TtfFont.ttf_tables | Достъп до набор от таблици с ТТФ |
TtfFont.get_table_bytes(tag) | Необработени байтове за назована таблица |
TtfFont.set_table_bytes(tag, data) | Записване на модифицирани таблични байтове |
TtfFont.get_axis() | Информация за променливата ос на шрифта |
TtfInstancer.instantiate(font, coords) | Създаване на статичен екземпляр |
TtfTableSet.kern | Таблица за корен (без отсъстване) |