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 TtfFontKrok3: 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.