Upravljanje osnovnim fontovima

Upravljanje osnovnim fontovima

Ovaj vodič pokazuje kako učitati fontove s putanja datoteka ili bajtnih nizova, čitati svojstva metapodataka, mapirati Unicode kodne tačke na ID-e glifa, preuzeti glife i raditi sa varijabilnim osama fonta i imenovanim primjercima.

FontLoader je primarna ulazna točka za sve operacije učitavanja fontova. punjen, Font U ovom slučaju, ako je to moguće, mora se provesti provedba postupka za utvrđivanje i preispitivanje. Metrike bez potrebe za analizom binarne tabele.


Članci za učitavanje

FontLoader.open(source, font_type, collection_index) Upotrebljava font s puta datoteke sa automatskim otkrivanjem formata. FontLoader.load(source, font_type, collection_index) Prihvaća sirove bajtove za radne tokove u memoriji ili mreži.

from aspose_font.loader import FontLoader

# From a file path — format auto-detected
font = FontLoader.open("Roboto-Regular.ttf")

# From raw bytes — useful for in-memory or network workflows
with open("OpenSans-Regular.otf", "rb") as f:
    font = FontLoader.load(f.read())

Čitanje metapodataka fontova

Nakon utovarenja, Font objekat eksponuje font_name, font_family, font_style, i num_glyphs Svrha za brzu provjeru bez ručnog analiziranja tabele.

from aspose_font.loader import FontLoader

font = FontLoader.open("MyFont.ttf")
print(font.font_name)    # full PostScript name
print(font.font_family)  # family name
print(font.font_style)   # style name e.g. "Regular", "Bold"
print(font.num_glyphs)   # total glyph count

Glyph kodiranje

FontEncoding map Unicode kod ukazuje na ID-ove glifa. Koristite unicode_to_gid(cp) za rješavanje jedne tačke koda, ili get_all_codepoints() Da se popise svaki kodni element u font.

from aspose_font.loader import FontLoader

font = FontLoader.open("OpenSans-Regular.otf")

# Map a single code point
gid = font.encoding.unicode_to_gid(0x41)  # GID for 'A'

# Enumerate all mapped code points
all_cps = font.encoding.get_all_codepoints()
print(f"Font covers {len(all_cps)} Unicode code points")

Pristup glifima

GlyphAccessor Pronalazi objekte s znakovima po ID-u, Unicodu ili tekstualnom nizu.

from aspose_font.loader import FontLoader

font = FontLoader.open("OpenSans-Regular.otf")

glyph = font.glyph_accessor.get_glyph_by_id(gid)
glyph_a = font.glyph_accessor.get_glyph_by_unicode(0x41)
glyphs = font.glyph_accessor.get_glyphs_for_text("Hello")
all_ids = font.glyph_accessor.get_all_glyph_ids()

Izvorni broj:

Za varijabilne fontove (one koji sadrže fvar (u tablici), TtfFont osovina izloženosti definicije i imenovane slučajeve izravno.

from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont

loaded = FontLoader.load("Roboto-VariableFont_wdth,wght.ttf")
ttf: TtfFont = loaded.font

# Check if the font is variable
if ttf.is_variable:
    # List all variation axes
    for axis in ttf.variable_axes:
        print(f"{axis.tag}  range: {axis.min_value}..{axis.max_value}  default: {axis.default_value}")

    # Look up a single axis by tag
    wght = ttf.get_axis("wght")
    if wght:
        print(f"Weight axis: {wght.min_value}..{wght.max_value}")

    # Enumerate named instances (e.g. Bold, Condensed)
    for inst in ttf.named_instances:
        print(f"Instance: name_id={inst.name_id}  coordinates={inst.coordinates}")

U slučaju višeg razine, u skladu s člankom 7. stavkom 1. točkom (a) točke (d)., SmartInstancer broj okova zaokruženja i Izračun iz članka 1. stavka 2. točke (a) se primjenjuje na:

from aspose_font.loader import FontLoader
from aspose_font.instancing import SmartInstancer

loaded = FontLoader.load("Roboto-VariableFont_wdth,wght.ttf")
instancer = SmartInstancer(loaded.font)

print(f"Axes: {[a.tag for a in instancer.axes]}")
print(f"Named instances: {len(instancer.named_instances)}")

Savjeti i najbolje prakse

  • Cache je učitavan Font objekte prilikom višestruke obrade iste datoteke fontova
  • Upotreba: FontLoader.load(bytes) za radne tokove mreže ili baze podataka kako bi se izbjegli temp datoteke
  • Čekaj. num_glyphs U slučaju da se ne može utvrditi broj korisnika, u skladu s člankom 72. stavkom 1. točka (a) Uredbe (EU) br. 575/2013.
  • get_all_glyph_ids() Koristan je za iteraciju cijelog skupa glifa.

Zajednički problemi

IzdavanjeUzrokPopraviti
UnsupportedFontFormatExceptionFormat datoteke nije prepoznatljivU slučaju da je dosje u skladu s člankom 4. stavkom 1. točkom (a) i podstavka 2., datoteka se može preuzeti.
FontParseExceptionNeispravni binarni podaciPotvrdite datoteku font s linterom prije učitavanja
GlyphNotFoundExceptionGID izvan dometaČekaj. num_glyphs prije pristupa putem ID-a

FAQ

Podržava li FontLoader WOFF2?

-Da, u redu je. FontLoader.open() i u članku 1. FontLoader.load() Oboje prihvaćaju WOFF2 datoteke i automatski otkrivaju. oblik.

Mogu li učitati font iz URL-a?

Ne direktno. Preuzmite font bajtove s urllib ili: requests i proslijediti ih… FontLoader.load(bytes).

Je li opterećenje sigurno?

Svaki od njih. FontLoader.open() Poziv vraća nezavisnu Font istovremeni pozivi na odvojene predmete su sigurni.


Svrha referentnog API-a

Klasa / metodaOpisivanje
FontLoader.open(path)Uplatiti font iz puta datoteke
FontLoader.load(data)Uplatiti font iz sirovih bajta
Font.font_namePotpuno ime fontova PostScript-a
Font.font_familyIme obitelji fontova
Font.font_styleIme stila fontova
Font.num_glyphsUkupan broj glifa
FontEncoding.unicode_to_gid(cp)Karta Unicode kodna točka na ID glifa
FontEncoding.get_all_codepoints()Sve Unicode kodne točke s mapiranjem glifa
GlyphAccessor.get_glyph_by_id(gid)Pronađite glif po ID-u
GlyphAccessor.get_glyph_by_unicode(cp)Pronađite glif po Unicode kodnom točki
GlyphAccessor.get_glyphs_for_text(text)Pronaći glife za tekstni niz
GlyphAccessor.get_all_glyph_ids()Popis svih ID-ova znakova u fontu
TtfFont.is_variableDa li font sadrži promjenjive podatke o šifru
TtfFont.variable_axesPopis: VariableAxis objekte za svaku os promjena
TtfFont.get_axis(tag)Pogledajte jednu os po njenim četiri znakova oznaka
TtfFont.named_instancesNazvani slučajevi definirani u font je fvar stol
SmartInstancer(font)Uputstvo u uspostavljanju i održavanju podataka o korisnicima.

Također pogledajte:

 Hrvatski