Gestion de fonctions Core
Gestion de fonctions Core
Ce guide montre comment charger les phontres des voies de fichier ou des arées bytes, lire les propriétés de métadonnées, cartographier les points de code Unicode aux identifiants glyphes, récupérer les glyfs et travailler avec les axes variables de la phone et les exemples nommés.
FontLoader est le point d’entrée principal pour toutes les opérations de chargement des lettres. une fois qu’un chargé, le Font La classe de base fournit un accès aux métadonnées, à l’encodage, au glyph et Métriques sans nécessiter la partage de table binaire.
Les fonts chargés
FontLoader.open(source, font_type, collection_index) charge un fichier d’un chemin de fichiers avec détection automatique du format. FontLoader.load(source, font_type, collection_index) Accepte les bytes de base pour les flux de travail en mémoire ou réseau.
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())Lire la suite Metadata
Après le chargement, la Font Objet exposé font_name, font_family, font_style,et num_glyphs Propriétés pour inspection rapide sans partage manuel de table.
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 en codage
FontEncoding cartes Unicode points de code pour les ID glyph. Utiliser unicode_to_gid(cp) pour résoudre un seul point de code, ou get_all_codepoints() Pour enumer chaque point de code cartographié dans le 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")Glyph accès
GlyphAccessor Récupérer les objets glyph par ID, Unicode ou string texte.
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()Les fonts variables
pour les variables (qui contiennent un fvar tableau ), TtfFont Exposer les axes des définitions et des cas nommés.
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}")Pour les flux de travail d’instance supérieure, SmartInstancer Il est enregistré à l’axe et résolution d’une seule instance :
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)}")Conseils et meilleures pratiques
- Cache chargé
FontObjets lors de la transformation du même fichier plusieurs fois - Utiliser
FontLoader.load(bytes)pour les flux de travail réseau ou de base de données afin d’éviter les fichiers temp - Vérifier
num_glyphsAvant de souscrire à l’estimation de la couverture post-subset get_all_glyph_ids()Il est utile pour l’itération du set de glyph complet
Les problèmes communs
| Problème | Cause | Fixé |
|---|---|---|
UnsupportedFontFormatException | Format de fichier non reconnu | Vérifier que le fichier est valide TTF/OTF / CFF / WOFF (WOFf) / EOT / Type 1 |
FontParseException | Les données binaires malformées | Valider le fichier de caractère avec un linter avant de charger |
GlyphNotFoundException | Sortir de la gamme | Vérifier num_glyphs Avant d’accéder par ID |
FAQ
FontLoader prend en charge WOFF2 ?
Oui oui. FontLoader.open() et FontLoader.load() Accepter les fichiers WOFF2 et détecter automatiquement Le format .
Puis-je télécharger un fichier d’une URL ?
Non directement. télécharger les bytes de font avec urllib ou requests et les transférer à FontLoader.load(bytes).
Le chargement est-il sécurisé ?
Chacun FontLoader.open() La réunion remet un indépendant Font Objet : appels concurrents Les objets séparés sont sûrs.
Le résumé de référence API
| Classes / Méthodes | Description |
|---|---|
FontLoader.open(path) | Télécharger un fichier d’un chemin de fichiers |
FontLoader.load(data) | Carte d’un font à partir de bytes crus |
Font.font_name | Nom de la lettre PostScript |
Font.font_family | Nom de famille Font |
Font.font_style | Nom de style font |
Font.num_glyphs | Total Glyph Couture |
FontEncoding.unicode_to_gid(cp) | Unicode code point pour glyph ID |
FontEncoding.get_all_codepoints() | Tous les points de code Unicode avec des cartes glyphées |
GlyphAccessor.get_glyph_by_id(gid) | Retrieve glyph par ID |
GlyphAccessor.get_glyph_by_unicode(cp) | Retrieve glyph par unicode code point |
GlyphAccessor.get_glyphs_for_text(text) | Retrieve glyphs pour un texte string |
GlyphAccessor.get_all_glyph_ids() | Liste de tous les ID glyph dans le font |
TtfFont.is_variable | Le fichier contient des données de fiches variables |
TtfFont.variable_axes | Liste de VariableAxis Les objets pour chaque axes de variation |
TtfFont.get_axis(tag) | Regardez un seul axe par son étiquette de quatre caractères |
TtfFont.named_instances | Les cas définis dans le font fvar Tableau |
SmartInstancer(font) | Aide de haut niveau pour l’axe et les requêtes d’instance |