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 countGlyph 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
Fontobjekte 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_glyphsU 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
| Izdavanje | Uzrok | Popraviti |
|---|---|---|
UnsupportedFontFormatException | Format datoteke nije prepoznatljiv | U slučaju da je dosje u skladu s člankom 4. stavkom 1. točkom (a) i podstavka 2., datoteka se može preuzeti. |
FontParseException | Neispravni binarni podaci | Potvrdite datoteku font s linterom prije učitavanja |
GlyphNotFoundException | GID 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 / metoda | Opisivanje |
|---|---|
FontLoader.open(path) | Uplatiti font iz puta datoteke |
FontLoader.load(data) | Uplatiti font iz sirovih bajta |
Font.font_name | Potpuno ime fontova PostScript-a |
Font.font_family | Ime obitelji fontova |
Font.font_style | Ime stila fontova |
Font.num_glyphs | Ukupan 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_variable | Da li font sadrži promjenjive podatke o šifru |
TtfFont.variable_axes | Popis: VariableAxis objekte za svaku os promjena |
TtfFont.get_axis(tag) | Pogledajte jednu os po njenim četiri znakova oznaka |
TtfFont.named_instances | Nazvani slučajevi definirani u font je fvar stol |
SmartInstancer(font) | Uputstvo u uspostavljanju i održavanju podataka o korisnicima. |