Práce s písmy TrueType
Práce s TrueType fonty
Tento návod ukazuje, jak načíst TrueType fonty, prozkoumat jejich binární data tabulek, číst surové bajty tabulek a vytvořit statické instance z proměnných fontů pomocí TtfInstancer.
TrueType (TTF) fonty jsou nejběžnějším formátem desktopových a webových fontů. Aspose.Font FOSS pro Python poskytuje TtfFont pro přístup k TTF-specifickým datům tabulek, získávání glyph blobů a řízení os proměnných fontů.
Načítání TTF fontu
FontLoader.open() automaticky detekuje formát TTF a vrací objekt typu TtfFont. Vrácená instance poskytuje přístup k TTF-specifickým funkcím, jako jsou ttf_tables, get_table_bytes() a data os proměnných fontů.
from aspose_font import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name, font.num_glyphs, "glyphs")Přístup k TTF tabulkám
TtfFont.ttf_tables poskytuje TtfTableSet s pojmenovanými vlastnostmi pro běžné tabulky.
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)Surové bajty tabulky
Použijte TtfFont.get_table_bytes(tag) k načtení surových binárních dat tabulky a TtfFont.set_table_bytes(tag, data) k zápisu upravených bajtů tabulky.
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")Instance proměnných fontů
TtfFont.get_axis(tag) vrací jedinou proměnnou osu podle jejího 4-znakového tagu (např. "wght", "wdth"), nebo None, pokud font tuto osu nedefinuje. TtfInstancer.instantiate() vytváří statickou instanci z proměnného fontu na zadaných souřadnicích osy.
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})Tipy a osvědčené postupy
- Vždy použijte
isinstance(font, TtfFont)před přístupem kttf_tablesneboget_table_bytes() - Použijte
TtfTableSet.kernk ověření dostupnosti kerningu před čtením páry kerningu - Instanciování variabilního fontu vytváří nový objekt fontu; originál zůstává nezměněn.
API Reference Shrnutí
| Třída / Metoda | Popis: |
|---|---|
TtfFont.ttf_tables | Přístup k sadě TTF tabulek |
TtfFont.get_table_bytes(tag) | Surové bajty pro pojmenovanou tabulku |
TtfFont.set_table_bytes(tag, data) | Zapsat upravené bajty tabulky |
TtfFont.get_axis(tag) | Proměnná osa písma podle značky, nebo None |
TtfInstancer.instantiate(font, coords) | Vytvořte statickou instanci |
TtfTableSet.kern | Kerningová tabulka (žádná, pokud chybí) |