Introduction
Les écrans de la vérité (.ttfet leur propre défaut (.otfLe font dominant est Les deux formats partagent la même structure de table binaire. enracinée dans la spécification OpenType. Aspose.Font FOSS pour Python expose cette structure par le TtfFont, fournissant un accès direct aux tables OpenType individuelles, à des données de paires cernales, Les axes de caractère variables et les outlines glyphées.
Le TtfFont La classe étend la Font La classe de base avec des méthodes spécifiques à la TTF, y compris get_blob, get_table_bytes, set_table_bytes,et instantiate Pour le font variable L’axe de la clôture. le TtfTableSet La propriété (ttf_tablesIl fournit un accès typique à la Les tables OpenType les plus courantes : head, hhea, maxp, os2, name, post.
La bibliothèque est publiée sur Pypi comme aspose-font Il est licencié sous la licence MIT. Il n’a pas de dépendance commerciale obligatoire.
Fonctionnalités clés
Télécharger les phontres TTF et OTF
Utiliser FontLoader.open Pour télécharger un fichier de texte TrueType ou OpenTYpe :
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
print(loaded.font_name)
print(loaded.font_family)
print(loaded.font_style)
print(loaded.num_glyphs)
FontLoader.open détecter le format de la phonette du titre de fichier. .ttf (Le vrai type) et .otf (OpenType CFF) les fichiers sont supportés et tous deux retournent à un TtfFont et instance.
Accès à OpenType Tables via TtfTableSet
Le ttf_tables La propriété est de retour à TtfTableSet avec des accessoires pour les communs Tableau de type Open. Chaque propriété retourne l’objet de table ou None Si vous absentez :
Le ttf_tables Propriété sur TtfFont Retour à A TtfTableSet Exemple : Disponible Table des accessoires :
head—HeadTable | Nonehhea—HheaTable | Nonemaxp—MaxpTable | Noneos2—Os2Table | Nonename—NameTable | Nonepost—PostTable | None
Chaque propriété retourne l’objet de table ou None Si cette table n’est pas présente dans le Fiche de fichier.Access TtfTableSet Propriétés à vérifier pour des tables spécifiques avant de lire Pour les tables non couvertes par des accessoires nommés, utilisez TtfTableSet.get_raw(tag) à Récupérer les bits crus par le tag OpenType de quatre caractères.
Lire la suite de Raw Table Bytes
get_table_bytes(tag) retourner les bits de base pour n’importe quelle table OpenType. get_blob(tag) Pour une variante non sûre qui revient None Lorsque la table est absente :
TtfFont Il fournit deux méthodes pour l’accès à la table crue:
get_table_bytes(tag) -> bytes- retourner les bytes de base pour une table nommée (augmenter si l’absence)get_blob(tag) -> bytes | None- RetournerNoneSi la table est absente (variante sécurisée)
Les deux méthodes acceptent une étiquette de table OpenType à quatre caractères, telle que : "cmap", "GDEF",ou "GPOS".Utiliser get_blob Lorsque une table est facultative, vous pouvez vérifier la None Avant Traitement .
Les paires de noyau
get_kern_pairs() retourner tous les paires de noyau codés dans le font. KernPair Il a left (le Glyphid est le cas), right (Glyphid) et value (en unités de font) :
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
pairs = loaded.get_kern_pairs()
print(f"Kern pairs: {len(pairs)}")
for pair in pairs[:5]:
print(f" Left: {pair.left} Right: {pair.right} Value: {pair.value}")
Métrique Font
Les métrices standard sont accessibles à travers le metrics Propriété :
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
metrics = loaded.metrics
print(f"Units per em : {metrics.units_per_em}")
print(f"Ascender : {metrics.ascender}")
print(f"Descender : {metrics.descender}")
print(f"Line gap : {metrics.line_gap}")
print(f"Underline pos : {metrics.underline_position}")
Support variable
Pour les variables, TtfFont Expositions is_variable, variable_axes,et named_instances.Utiliser get_axis(tag) Pour obtenir un axe spécifique par ses quatre lettres et tag :
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/RobotoFlex.ttf")
print(f"Is variable: {loaded.is_variable}")
print(f"Axes : {len(loaded.variable_axes)}")
Le get_axis(tag) méthode sur TtfFont Récupérer A VariableAxis par ses quatre lettres Le thème (e.g. "wght" pour le poids, "wdth" Il est retourné (Return) None Si l’axe est Pas présent dans le font fvar table de table.
Conversion de fonts
to_bytes(font_type) convertit le fichier dans un format différent. Utilisez la FontType Enum Pour définir l’objectif :
from aspose_font import FontLoader, FontType
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
ttf_bytes = loaded.to_bytes(FontType.TTF)
with open("output/Roboto-copy.ttf", "wb") as fh:
fh.write(ttf_bytes)
print(f"Serialized: {len(ttf_bytes)} bytes")
Démarrage rapide
Installation de la bibliothèque :
.venv/bin/pip install aspose-font
Téléchargez un fichier TTF et vérifiez :
from aspose_font import FontLoader, FontType
loaded = FontLoader.open("Roboto-Regular.ttf")
print(f"Font name : {loaded.font_name}")
print(f"Family : {loaded.font_family}")
print(f"Glyphs : {loaded.num_glyphs}")
print(f"Variable : {loaded.is_variable}")
metrics = loaded.metrics
print(f"UPM : {metrics.units_per_em}")
ttf_bytes = loaded.to_bytes(FontType.TTF)
print(f"Serialized: {len(ttf_bytes)} bytes")
Formats soutenus
| Formats | Extension | Lire | Écrire |
|---|---|---|---|
| TTF | .TFD | ✓ | — |
| OTF | .OTP | ✓ | — |
| EOT | .EOT | ✓ | — |
| CFF | .CFF | ✓ | — |
| TYPE1 | .pfb / pfa | ✓ | — |
| WOFF | .Voff | ✓ | — |
| WOFF2 | .Le Wooff2 | ✓ | — |
Tous les formats sont chargés par FontLoader.open.TTF/OTF font retour a TtfFont et instance.
Source ouverte et licence
Aspose.Font FOSS for Python is released under the MIT License. You can use it in des projets personnels, commerciaux et open source sans coût. le code source est disponible sur GitHub et le package est distribué via PyPI comme aspose-font.