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 count

Glyph 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é Font Objets 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_glyphs Avant 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èmeCauseFixé
UnsupportedFontFormatExceptionFormat de fichier non reconnuVérifier que le fichier est valide TTF/OTF / CFF / WOFF (WOFf) / EOT / Type 1
FontParseExceptionLes données binaires malforméesValider le fichier de caractère avec un linter avant de charger
GlyphNotFoundExceptionSortir de la gammeVé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éthodesDescription
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_nameNom de la lettre PostScript
Font.font_familyNom de famille Font
Font.font_styleNom de style font
Font.num_glyphsTotal 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_variableLe fichier contient des données de fiches variables
TtfFont.variable_axesListe 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_instancesLes cas définis dans le font fvar Tableau
SmartInstancer(font)Aide de haut niveau pour l’axe et les requêtes d’instance

Voir aussi

 Français