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
| Formats | Extension | Lire | É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.