Introduction

Aspose.Font FOSS for Python provides a coherent set of classes for every common tâche de gestion des fonctions : télécharger les fichiers fonts dans plusieurs formats, lire les métadonnées et données glyph, conversion entre formats, sous-setting pour la livraison web et nettoyage tableaux binaires pour la taille de fichier optimale.Cette guide passe par chaque capacité de base avec des exemples de code de travail tirés de l’API vérifiée de la bibliothèque.

Le package (aspose-fontIl est licencé par MIT, il requiert Python 3.10+, et n’a pas de licence. Bibliothèque de caractères à niveau OS. Installation avec pip install aspose-font>=1.0.0.


Fonctionnalités clés

Création de fonts avec FontLoader

FontLoader est le seul point d’entrée pour toutes les opérations de chargement des lettres. open() le méthode accepte un chemin de fichier (str ou Path) et détecte automatiquement le format. load() méthode accepte les bytes crues pour les flux de travail en mémoire. Font- Types Vous pouvez inspecter immédiatement.

from aspose_font.loader import FontLoader

# Load from file path — format detected automatically
font = FontLoader.open("Roboto-Regular.ttf")

# Load from raw bytes (e.g., from a network request or database blob)
with open("OpenSans-Regular.otf", "rb") as f:
    font_bytes = f.read()
font = FontLoader.load(font_bytes)

Lire les métadonnées de la base des fonctions par le biais de l’étape de base

Une fois chargé, le Font La classe de base expose les propriétés métadonnées standard sans Vous devez vous faire parse des tables de caractères binaires. les propriétés font_name, font_family, font_style,et num_glyphs C’est la méthodologie qui couvre les besoins de métadonnées les plus courants.

from aspose_font.loader import FontLoader

font = FontLoader.open("NotoSans-Regular.ttf")
print(f"Name:   {font.font_name}")
print(f"Family: {font.font_family}")
print(f"Style:  {font.font_style}")
print(f"Glyphs: {font.num_glyphs}")

Glyph Encodage et accès

FontEncoding cartes Unicode points de code pour les ID glyph. Utiliser unicode_to_gid() Pour Un seul code ou get_all_codepoints() pour enregistrer la couverture complète de l’ensemble des Le font. GlyphAccessor Récupérer les objets glyph par ID via get_glyph_by_id(), Unicode via get_glyph_by_unicode(),ou pour un texte en ligne par get_glyphs_for_text().

from aspose_font.loader import FontLoader

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

# Map Unicode code point to glyph ID
glyph_id = font.encoding.unicode_to_gid(0x41)  # 'A'
print(f"Glyph ID for 'A': {glyph_id}")

# Retrieve glyph object
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)

# Inspect path commands
for cmd in glyph.path.commands:
    print(type(cmd).__name__, cmd)

Conversion de fonctions avec FontConverter

FontConverter.convert() convertit un chiffre chargé entre les formats supportés. font source et le format cible identifiant pour obtenir un nouveau objet de la lettre dans l’objectif La méthode traite CFF, TTF, WOFF , Woff2, EOT et Type 1 comme source et Le but.

from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter

source = FontLoader.open("MyFont.ttf")
converted = FontConverter.convert(source, target_format="woff2")

Optimisation Web avec FontCleaner

FontCleaner.clean_for_web() Supprimer les tables binaires qui sont inutiles pour le web Livraison des lettres – spécifiquement DSIG, FFTM et meta – et les couches sur la plateforme Mac (platform_id=1) le résultat est un binaire plus maigre qui réduit le réseau charge sans toucher les outlines ou les métrics. arguments de mots-clés facultatifs vous laissent Conserver des types de table spécifiques si nécessaire.

from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner

font = FontLoader.open("Roboto-Regular.ttf")

# Strip all legacy tables and Mac name records (default)
cleaned = FontCleaner.clean_for_web(font)

# Preserve specific metadata tables if required
cleaned_selective = FontCleaner.clean_for_web(
    font,
    drop_metadata_tables=False,
    drop_legacy_tables=True,
    drop_mac_names=True,
)

Inspection de la route Glyph

Chaque Glyph L’objet expose son outline comme un GlyphPath Qui commands Séquence Il contient des exemples de MoveTo, LineTo, QuadraticTo, CurveTo,et ClosePath.Chaque commande porte les attributs de coordinate pertinents, par exemple, CurveTo Il a x1, y1, x2, y2, x, y - vous permettant d’extraire la crème Bézier données pour la rendu, la génération SVG ou la géométrie de collision.

from aspose_font.loader import FontLoader
from aspose_font import CurveTo, LineTo

font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(ord("A"))
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)

curves = [cmd for cmd in glyph.path.commands if isinstance(cmd, CurveTo)]
print(f"Cubic Bezier segments in 'A': {len(curves)}")

Démarrage rapide

pip install aspose-font>=1.0.0
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner

# Load, inspect, and clean a font in five lines
font = FontLoader.open("MyFont.ttf")
print(font.font_family, font.num_glyphs, "glyphs")
cleaned = FontCleaner.clean_for_web(font)
print("Font cleaned for web delivery")

Formats soutenus

FormatsExtensionLireÉcrire
TTF.TFD
OTF.OTP
CFF.CFF
TYPE1.pfb / pfa
WOFF.Voff
WOFF2.Le Wooff2
EOT.EOT

Source ouverte et licence

Aspose.Font FOSS for Python is MIT licensed. The source is on GitHub at Avis sur le site : Font-FOSS-for-Python Le package est sur PyP comme aspose-font.


Pour commencer

Ressources associées