Hoe te werken met TTF-fonts in Python

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 TtfFont

Stap 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.

Zie ook

 Nederlands