Jak pracovat s TTF fonty v Python

Jak pracovat s TTF fonty v Python

Tento průvodce ukazuje, jak načíst TTF fonty, prozkoumat vlastnosti TtfFont, číst tabulky, vytvořit instance proměnných fontů a převést je do jiných formátů pomocí Aspose.Font FOSS pro Python. TrueType fonty (.ttf) jsou nejběžnějším formátem fontů. Aspose.Font FOSS je načítá jako instance TtfFont, což poskytuje přístup k tabulkám, osám proměnných fontů, datům glifu a nástrojům pro konverzi.

Návod krok za krokem

Krok 1: Nainstalujte balíček

Nainstalujte Aspose.Font FOSS balíček pomocí níže uvedeného příkazu:

git clone https://github.com/aspose-font-foss/Aspose.Font-FOSS-for-Python.git
cd Aspose.Font-FOSS-for-Python
pip install -e .

Krok 2: Importujte požadované třídy

Importujte FontLoader a TtfFont pro načtení TTF fontu a přístup k jeho typovaným vlastnostem:

from aspose_font import FontLoader
from aspose_font import TtfFont

Krok3: Načíst a prozkoumat TTF font

Načtěte TTF soubor pomocí FontLoader.open() a přečtěte základní vlastnosti, jako je název, rodina a počet glyfů:

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
print(ttf_font.font_name)
print(ttf_font.font_family)
print(ttf_font.num_glyphs)

Krok4: Přečíst tabulku kern

Přistupte k vlastnosti ttf_tables a zkontrolujte, zda tabulka kern existuje podle názvu:

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
kern = ttf_font.ttf_tables.kern
print("kern present:", kern is not None)

Krok5: Instancovat proměnný font

Načtěte soubor s proměnným fontem, zkontrolujte is_variable a zavolejte instantiate() s osovým slovníkem pro vytvoření statické instance:

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)

Krok6: Převést na WOFF2

Převěď načtený font TTF do formátu WOFF2 předáním FontType.WOFF2 do 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)

Běžné problémy a opravy

AttributeError: Font has no attribute ttf_tables — Použijte ttf_font: TtfFont = FontLoader.open(...). The ttf_tables vlastnost je na TtfFont, ne základ Font.

is_variable je False ve variabilním fontu — Některé variabilní fonty používají nestandardní fvar formát tabulky. Zkontrolujte ttf_font.fvar is not None jako alternativu.

instantiate() raises KeyError — Tag osy musí být registrovaný 4-znakový tag (např. "wght", "wdth") ttf_font.axes pro dostupné tagy.

Často kladené otázky

Jaký je rozdíl mezi TTF a OTF?

OTF a TTF sdílí stejný binární kontejner (SFNT). Písma OTF typicky používají obrysy CFF, zatímco písma TTF používají TrueType kvadratické křivky. Obě jsou načítány FontLoader.open().

Mohu získat kerningové páry z TTF písma?

Ano. Použijte TtfFont.get_kern_pairs() k získání seznamu objektů KernPair.

Podporuje knihovna kolekce písem (.ttc)?

Ano. Použijte FontLoader.open(source, collection_index=N) k výběru konkrétního písma ze souboru kolekce TTC.

Viz také:

 Čeština