Въведение

Шрифтове 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 На разположение. С изключение на:

  • headHeadTable | None
  • hheaHheaTable | None
  • maxpMaxpTable | None
  • os2Os2Table | None
  • nameNameTable | None
  • postPostTable | 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.


Започваме

Свързани ресурси