Práce s písmy TrueType

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 k ttf_tables nebo get_table_bytes()
  • Použijte TtfTableSet.kern k 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 / MetodaPopis:
TtfFont.ttf_tablesPří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.kernKerningová tabulka (žádná, pokud chybí)

Viz také:

 Čeština