Въведение
Шрифтове TrueType (.ttf) и тяхната суперсерия от OpenType (.otf) са доминиращите шрифтове. формати на съвременните операционни системи.И двата формата споделят една и съща структура на бинарна таблица Aspose.Font FOSS за Python разкрива тази структура. през TtfFont, предоставя директно достъп до отделните OpenType таблици, данни за двойки ядра;, променливи оси на шрифта и обширни графики.
Съветът на ЕС TtfFont класът разширява обхвата на Font базови клас с специфични за ТТФ методи, включително: get_blob, get_table_bytes, set_table_bytes, и instantiate за променлив шрифт Затваряне на оста. TtfTableSet собственост (ttf_tables) предоставя напечатан достъп до информацията, която е в съответствие с член 10 от Регламент (ЕО) No 1224/2005. най-често срещаните таблици на OpenType: head, hhea, maxp, os2, name, post.
Библиотеката е публикувана на PyPI като: aspose-font и лицензиран под MIT License. Тя няма задължителни търговски зависимости.
Ключови характеристики
Зареждане на шрифтове TTF и OTF
Използване на: FontLoader.open за зареждане на всеки файл с шрифт TrueType или OpenTybe:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
print(loaded.font_name)
print(loaded.font_family)
print(loaded.font_style)
print(loaded.num_glyphs)
FontLoader.open открива формата на шрифта от заглавието на файла. И двете .ttf (TrueType) и в) .otf (OpenType CFF) файлове са поддържани и двете връщат a TtfFont Във всеки случай.
Достъп до OpenType таблици чрез TtfTableSet
Съветът на ЕС ttf_tables свойството връща a TtfTableSet с тегловно съдържание на не повече от 0,5% OpenType таблици. Всяко свойство връща обекта на таблицата или None ако липсва:
Съветът на ЕС ttf_tables имот на TtfFont връща a TtfTableSet На разположение. С изключение на:
head—HeadTable | Nonehhea—HheaTable | Nonemaxp—MaxpTable | Noneos2—Os2Table | Nonename—NameTable | Nonepost—PostTable | None
Всяко свойство връща обекта на таблицата или None ако тази таблица не е налице в Фонт файл. Достъп TtfTableSet свойства, които да се проверяват за конкретни таблици преди четенето За таблици, които не са обхванати от наименовани приспособления, използвайте: TtfTableSet.get_raw(tag) в) към да се извличат сурови байтове чрез четиризначен OpenType тег.
Четене на сурови битове от таблица
get_table_bytes(tag) Връща суровите байтове за всяка OpenType таблица. Use get_blob(tag) за вариант “Не-безопасен”, който връща: None когато таблицата не е налице:
TtfFont предоставя два метода за достъп до необработени таблици:
get_table_bytes(tag) -> bytesвръща суровите байтове за дадена таблица (повишава, ако липсва)get_blob(tag) -> bytes | NoneвъзвръщаемостNoneако таблицата не е налице (безопасен вариант)
И двата метода приемат четиризначен OpenType табличен етикет като: "cmap", "GDEF", или "GPOS".Използвайте. get_blob когато масата е опционална, така че можете да проверите за None преди това обработка.
Парни ядра
get_kern_pairs() Върна всички двойки ядра, кодирани във шрифта. KernPair има: left (Глифид), right (Глифид) и value (int в шрифтни единици):
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
pairs = loaded.get_kern_pairs()
print(f"Kern pairs: {len(pairs)}")
for pair in pairs[:5]:
print(f" Left: {pair.left} Right: {pair.right} Value: {pair.value}")
Метрични шрифтове
Стандартните показатели са достъпни чрез metrics собственост:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
metrics = loaded.metrics
print(f"Units per em : {metrics.units_per_em}")
print(f"Ascender : {metrics.ascender}")
print(f"Descender : {metrics.descender}")
print(f"Line gap : {metrics.line_gap}")
print(f"Underline pos : {metrics.underline_position}")
Подкрепа за променливи шрифтове
За променливи шрифтове:, TtfFont експозиции is_variable, variable_axes, и named_instances.Използвайте. get_axis(tag) да се извлече конкретна ос чрез нейните четири букви. Тэг:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/RobotoFlex.ttf")
print(f"Is variable: {loaded.is_variable}")
print(f"Axes : {len(loaded.variable_axes)}")
Съветът на ЕС get_axis(tag) метод на TtfFont извлича A. VariableAxis от четири букви. етикет (напр. "wght" за тегло, "wdth" Връща се: None ако оста е: не присъства в шрифта на fvar - Да, но не и за маса.
Преобразуване на шрифтове
to_bytes(font_type) преобразува шрифта в друг формат. Използвайте FontType Енум да се посочи целта:
from aspose_font import FontLoader, FontType
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
ttf_bytes = loaded.to_bytes(FontType.TTF)
with open("output/Roboto-copy.ttf", "wb") as fh:
fh.write(ttf_bytes)
print(f"Serialized: {len(ttf_bytes)} bytes")
Бързо стартиране
Инсталирайте библиотеката:
.venv/bin/pip install aspose-font
Заредете TTF шрифт и го проверете:
from aspose_font import FontLoader, FontType
loaded = FontLoader.open("Roboto-Regular.ttf")
print(f"Font name : {loaded.font_name}")
print(f"Family : {loaded.font_family}")
print(f"Glyphs : {loaded.num_glyphs}")
print(f"Variable : {loaded.is_variable}")
metrics = loaded.metrics
print(f"UPM : {metrics.units_per_em}")
ttf_bytes = loaded.to_bytes(FontType.TTF)
print(f"Serialized: {len(ttf_bytes)} bytes")
Подкрепени формати
| Формат на изображението | Разширяване на срока | Прочети. | Напиши. |
|---|---|---|---|
| TTF | .ttf (на английски) | ✓ | — |
| OTF | .отв. | ✓ | — |
| EOT | .- Не съм. | ✓ | — |
| CFF | .cff (включително счетоводни) | ✓ | — |
| TYPE1 | .pfb/.pfa | ✓ | — |
| WOFF | .- Да, добре. | ✓ | — |
| WOFF2 | .Wowf2 (включително вж. | ✓ | — |
Всички формати заредени чрез: FontLoader.open. TTF/OTF шрифтовете връщат a TtfFont Във всеки случай.
Отворени източници и лицензиране
Aspose.Font FOSS for Python is released under the MIT License. You can use it in Лични, търговски и с отворен код проекти без никакви разходи. Източният код е Пакетът се разпространява чрез PyPI като: aspose-font.