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 dottf_tableslubget_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 / Metoda | Opis |
|---|---|
TtfFont.ttf_tables | Dostę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.kern | Tabela kerningu (Brak, jeśli nieobecna) |