Hoe te werken met TTF-fonts in Python
Deze gids laat zien hoe je TTF-lettertypen laadt, TtfFont eigenschappen inspecteert, tabellen leest, variabele lettertypen initialiseert, en converteert naar andere formaten met behulp van Aspose.Font FOSS voor Python. TrueType lettertypen (.ttf) zijn het meest voorkomende lettertypeformaat. Aspose.Font FOSS laadt ze als TtfFont instanties, waardoor toegang wordt verkregen tot tabellen, variabele fontassen, glyph-gegevens en conversie-hulpmiddelen.
Stap-voor-stap gids
Stap 1: Installeer het pakket
Installeer het Aspose.Font FOSS-pakket met behulp van het onderstaande commando:
git clone https://github.com/aspose-font-foss/Aspose.Font-FOSS-for-Python.git
cd Aspose.Font-FOSS-for-Python
pip install -e .Stap 2: Importeer vereiste klassen
Importeer FontLoader en TtfFont om een TTF-lettertype te laden en de getypte eigenschappen ervan te benaderen:
from aspose_font import FontLoader
from aspose_font import TtfFontStap 3: Laad en inspecteer een TTF-lettertype
Laad een TTF-bestand met FontLoader.open() en lees basiseigenschappen zoals naam, familie en aantal glyphs:
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
print(ttf_font.font_name)
print(ttf_font.font_family)
print(ttf_font.num_glyphs)Stap 4: Lees de kern-tabel
Toegang tot de ttf_tables-eigenschap en controleer op de aanwezigheid van de kern-tabel op naam:
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
kern = ttf_font.ttf_tables.kern
print("kern present:", kern is not None)Stap 5: Instantieer een variabel lettertype
Laad een variabel lettertype-bestand, controleer is_variable, en roep instantiate() aan met een as-woordenboek om een statische instantie te maken:
from aspose_font import FontLoader
from aspose_font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
if ttf_font.is_variable:
static = ttf_font.instantiate({"wght": 700.0})
print("Instantiated:", static.font_name)Stap 6: Converteer naar WOFF2
Converteer een geladen TTF-lettertype naar WOFF2-formaat door FontType.WOFF2 door te geven aan FontConverter.convert():
from aspose_font import FontLoader
from aspose_font.converter import FontConverter # internal API — may change between releases
from aspose_font import FontType
font = FontLoader.open("Roboto-Regular.ttf")
woff2 = FontConverter.convert(font, FontType.WOFF2)Veelvoorkomende problemen en oplossingen
AttributeError: Font has no attribute ttf_tables — Gebruik ttf_font: TtfFont = FontLoader.open(...). De ttf_tables eigenschap staat op TtfFont, niet de basis Font.
is_variable is False op een variabel lettertype — Sommige variabele lettertypen gebruiken een niet-standaard fvar tabelindeling. Controleer ttf_font.fvar is not None als alternatief.
instantiate() raises KeyError — De as-tag moet een geregistreerde 4-tekens tag zijn (bijv. "wght", "wdth"). Controleren ttf_font.axes voor beschikbare tags.
Veelgestelde vragen
Wat is het verschil tussen TTF en OTF?
OTF en TTF delen dezelfde binaire container (SFNT). OTF-lettertypen gebruiken doorgaans CFF-contouren, terwijl TTF-lettertypen TrueType kwadratische curven gebruiken. Beide worden geladen door FontLoader.open().
Kan ik kernparen uit een TTF-font krijgen?
Ja. Gebruik TtfFont.get_kern_pairs() om een lijst met KernPair objecten te krijgen.
Ondersteunt de bibliotheek fontcollecties (.ttc)?
Ja. Gebruik FontLoader.open(source, collection_index=N) om een specifiek lettertype te selecteren uit een TTC-collectiebestand.