Inspekcja tabeli czcionek
Inspekcja tabel czcionki
Ten przewodnik pokazuje, jak odczytać nazwane właściwości tabel, pobrać surowe dane binarne tabeli oraz zapisać zmodyfikowane bajty tabeli z powrotem do czcionki TrueType.
TrueType i OpenType czcionki składają się z binarnych tabel, z których każda jest identyfikowana czterobajtowym tagiem. TtfTableSet udostępnia nazwane właściwości Python dla typowych tabel, a TtfFont zapewnia dostęp do surowych bajtów dla wszystkich tabel.
Odczyt nazwanych tabel
TtfTableSet udostępnia tabele head, hhea, maxp, os2, name, post, cmap, loca, hmtx i kern.
from aspose_font import FontLoader
from aspose_font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
tables = ttf_font.ttf_tables
print("head table:", tables.head is not None)
print("kern table:", tables.kern is not None)Odczyt surowych bajtów tabeli
TtfFont.get_table_bytes(tag) zwraca pełną zawartość binarną dowolnej tabeli zidentyfikowanej jej czteroznakowym tagiem, umożliwiając niskopoziomową inspekcję lub własne parsowanie.
from aspose_font import FontLoader
from aspose_font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
raw_name = ttf_font.get_table_bytes("name")
print(f"name table: {len(raw_name)} bytes")Zapisywanie zmodyfikowanych bajtów tabeli
TtfFont.set_table_bytes(tag, data) zastępuje binarną zawartość tabeli, umożliwiając niestandardowe modyfikacje tabel, takie jak łatanie reguł GSUB lub aktualizowanie rekordów name.
from aspose_font import FontLoader
from aspose_font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
modified_bytes = b"..." # your modified table
ttf_font.set_table_bytes("GSUB", modified_bytes)Wskazówki i najlepsze praktyki
- Sprawdź
tables.kern is not Noneprzed dostępem do danych kerningu TtfTableSet.get_raw(tag)iset_raw(tag, data)są aliasami dlaget_table_bytes/set_table_bytes- Używaj
FontCleaner.clean_for_web()zamiast ręcznego usuwania tabel, aby uniknąć problemów ze spójnością
API Reference Podsumowanie
| Klasa / Metoda | Opis |
|---|---|
TtfFont.ttf_tables | Uzyskaj dostęp do nazwanych właściwości tabeli |
TtfFont.get_table_bytes(tag) | Odczytaj surowe dane binarne tabeli |
TtfFont.set_table_bytes(tag, data) | Zapisz zmodyfikowane dane tabeli |
TtfTableSet.get_raw(tag) | Alias dla get_table_bytes |
TtfTableSet.set_raw(tag, data) | Alias dla set_table_bytes |