Werken met TrueType-lettertypen
Werken met TrueType-lettertypen
Deze gids laat zien hoe je TrueType-lettertypen laadt, hun binaire tabelgegevens inspecteert, ruwe tabelbytes leest, en statische instanties maakt van variabele lettertypen met behulp van TtfInstancer.
TrueType (TTF)-lettertypen zijn het meest voorkomende desktop- en weblettertypeformaat. Aspose.Font FOSS voor Python maakt TtfFont beschikbaar voor het benaderen van TTF-specifieke tabelgegevens, het ophalen van glyph-blobs en de controle van variabele lettertype-assen.
Een TTF-lettertype laden
FontLoader.open() detecteert automatisch het TTF-formaat en retourneert een object van type TtfFont. Het geretourneerde exemplaar biedt toegang tot TTF-specifieke functies zoals ttf_tables, get_table_bytes(), en variabele lettertype-assen gegevens.
from aspose_font import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name, font.num_glyphs, "glyphs")Toegang tot TTF-tabellen
TtfFont.ttf_tables biedt een TtfTableSet met benoemde eigenschappen voor veelvoorkomende tabellen.
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)Ruwe tabelbytes
Gebruik TtfFont.get_table_bytes(tag) om ruwe binaire tabelgegevens op te halen en TtfFont.set_table_bytes(tag, data) om gewijzigde tabelbytes te schrijven.
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")Variabele Lettertype-Instanties
TtfFont.get_axis(tag) retourneert een enkele variabele as op basis van zijn 4-karakter tag (bijv. "wght", "wdth"), of None als het lettertype die as niet definieert. TtfInstancer.instantiate() maakt een statische instantie van een variabel lettertype bij opgegeven ascoördinaten.
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})Tips en Best Practices
- Gebruik altijd
isinstance(font, TtfFont)voordat jettf_tablesofget_table_bytes()benadert. - Gebruik
TtfTableSet.kernom de beschikbaarheid van kerning te controleren voordat je kernparen leest. - Variabele lettertype-instantiatie produceert een nieuw lettertype-object; het origineel blijft ongewijzigd.
API Reference Samenvatting
| Klasse / Methode | Beschrijving |
|---|---|
TtfFont.ttf_tables | Toegang tot TTF-tabelset |
TtfFont.get_table_bytes(tag) | Ruwe bytes voor een benoemde tabel |
TtfFont.set_table_bytes(tag, data) | Schrijf gewijzigde tabelbytes |
TtfFont.get_axis(tag) | Variabele lettertype-as per tag, of None |
TtfInstancer.instantiate(font, coords) | Maak een statische instantie |
TtfTableSet.kern | Kerning-tabel (None indien afwezig) |