Praca z czcionkami TrueType

Praca z czcionkami TrueType

Praca z czcionkami TrueType

Ten przewodnik pokazuje, jak ładować czcionki TrueType, przeglądać ich binarne dane tabel, odczytywać surowe bajty tabel oraz tworzyć statyczne instancje z czcionek zmiennych przy użyciu TtfInstancer.

TrueType (TTF) to najczęstszy format czcionek desktopowych i internetowych. Aspose.Font FOSS dla Python udostępnia TtfFont do dostępu do danych tabel specyficznych dla TTF, pobierania blobów glifów oraz sterowania osiami czcionek zmiennych.


Ładowanie czcionki TTF

FontLoader.open() automatycznie wykrywa format TTF i zwraca obiekt typu TtfFont. Zwrócona instancja zapewnia dostęp do funkcji specyficznych dla TTF, takich jak ttf_tables, get_table_bytes() oraz danych osi czcionek zmiennych.

from aspose_font import FontLoader

font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name, font.num_glyphs, "glyphs")

Dostęp do tabel TTF

TtfFont.ttf_tables udostępnia TtfTableSet z nazwanymi właściwościami dla typowych tabel.

from aspose_font import FontLoader
from aspose_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)

Surowe bajty tabeli

Użyj TtfFont.get_table_bytes(tag), aby pobrać surowe dane binarne tabeli i TtfFont.set_table_bytes(tag, data), aby zapisać zmodyfikowane bajty tabeli.

from aspose_font import FontLoader
from aspose_font import TtfFont

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
raw_cmap = ttf_font.get_table_bytes("cmap")

Instancje zmiennych czcionek

TtfFont.get_axis(tag) zwraca pojedynczą oś zmienną na podstawie jej 4-znakowego tagu (np. "wght", "wdth"), lub None, jeśli czcionka nie definiuje tej osi. TtfInstancer.instantiate() tworzy statyczną instancję ze zmiennej czcionki przy określonych współrzędnych osi.

from aspose_font import FontLoader
from aspose_font import TtfFont
from aspose_font.ttf.instancer import TtfInstancer  # internal API — may change between releases

ttf_font: TtfFont = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")

weight_axis = ttf_font.get_axis("wght")
if weight_axis is not None:
    print(f"wght range: {weight_axis.min_value}-{weight_axis.max_value}")

# Get a static instance at wght=700, wdth=75
instance = TtfInstancer.instantiate(ttf_font, {"wght": 700.0, "wdth": 75.0})

Wskazówki i najlepsze praktyki

  • Zawsze używaj isinstance(font, TtfFont) przed dostępem do ttf_tables lub get_table_bytes()
  • Użyj TtfTableSet.kern, aby sprawdzić dostępność kerningu przed odczytaniem par kerningowych
  • Instancjonowanie zmiennej czcionki tworzy nowy obiekt czcionki; oryginał pozostaje niezmieniony

API Reference Podsumowanie

Klasa / MetodaOpis
TtfFont.ttf_tablesDostęp do zestawu tabel TTF
TtfFont.get_table_bytes(tag)Surowe bajty dla nazwanej tabeli
TtfFont.set_table_bytes(tag, data)Zapisz zmodyfikowane bajty tabeli
TtfFont.get_axis(tag)Oś zmiennej czcionki według tagu, lub None
TtfInstancer.instantiate(font, coords)Utwórz statyczną instancję
TtfTableSet.kernTabela kerningu (Brak, jeśli nieobecna)

Zobacz także

 Polski