Aspose.Font FOSS pour Python est un ensemble d’outils pure-Python pour charger, inspecter, convertir, sous‑ensembler et prévisualiser les polices dans les formats TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 et EOT. La bibliothèque fonctionne sur Python 3.10 ou version ultérieure et ne nécessite aucune bibliothèque de polices OS externe ni dépendance native.
La bibliothèque expose une API claire pour le chargement de polices via FontLoader, l’accès aux glyphes via GlyphAccessor, la conversion de formats via FontConverter, l’optimisation web via FontCleaner, le sous‑ensemble sensible au texte via FontSubsetter, et l’animation de polices variables via AnimationPreviewBuilder. Les métadonnées de police telles que le nom, la famille, le style, le nombre de glyphes, l’encodage et les métriques sont accessibles via la classe de base Font sans analyser manuellement les tables binaires.
Aspose.Font FOSS est sous licence MIT et installable depuis PyPI avec une seule commande pip install. Il convient aux outils de conception de polices, aux pipelines de polices web, aux moteurs de rendu de glyphes, et à toute application Python qui doit lire, transformer ou produire des fichiers de police. Pour la gamme de produits d’entreprise, voir Aspose.Font — Enterprise Product Family.
FontLoader.open() et FontLoader.load()Font: font_name, font_family, font_style, num_glyphsFontEncoding.unicode_to_gid() et get_all_codepoints()FontMetrics : ascent, descent, line gap, em-squareGlyphAccessor.get_glyph_by_id() et get_glyph_by_unicode()GlyphAccessor.get_glyphs_for_text()MoveTo, LineTo, QuadraticTo, CurveTo, ClosePathGlyph.KernPair pour des calculs de mise en page précisFontConverter.convert()CurveAdapter.quad_to_cubic() et cubic_to_quads()convert_path_quad_to_cubic() et convert_path_cubic_to_quad()FontSubsetter.subset_by_text()FontSubsetter.subset_by_gids()FontSubsetter.subset_for_web()FontSubsetter.subset_by_presets() et available_presets()FontSubsetter.analyze_coverage() et analyze_web_coverage()FontCleaner.clean_for_web()CompatibilityChecker.compare_fonts() et compare_variable_instances()AnimationPreviewBuilder.build_axis_sweep()AnimationPreviewBuilder.build_path()Ouvrez une police TrueType ou OpenType à partir d’un chemin de fichier et lisez ses métadonnées de base.
from aspose_font.loader import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name) # e.g. "Roboto"
print(font.font_family) # e.g. "Roboto"
print(font.num_glyphs) # e.g. 1294
Résoudre tous les glyphes d’un point de code Unicode et inspecter leurs chemins de contour.
from aspose_font.loader import FontLoader
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(0x41) # Unicode for A
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
for cmd in glyph.path.commands:
print(type(cmd).__name__, cmd)
Créez un APNG animé qui balaye un axe de police variable de la valeur de départ à la valeur finale.
from aspose_font.loader import FontLoader
from aspose_font.animation import AnimationPreviewBuilder
font = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
asset = AnimationPreviewBuilder.build_axis_sweep(
font,
axis_tag="wdth",
start_val=75.0,
end_val=100.0,
frames=3,
fps=10,
text="A",
size=10.0,
bounce=True,
)
asset.write_to("roboto-sweep-wdth.png")
Supprimez les tables héritées et les enregistrements de noms Mac pour réduire la taille du binaire avant la diffusion Web.
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
cleaned = FontCleaner.clean_for_web(font)
# DSIG, FFTM, meta tables removed; Mac platform name records stripped
C’est une bibliothèque pure-Python gratuite, sous licence MIT, pour charger, inspecter, convertir et sous‑ensemblier des polices aux formats TTF, OTF, CFF, Type 1, WOFF, WOFF2 et EOT. Aucune dépendance native n’est requise.
Exécutez pip install "aspose-font>=1.0.0". Aucune dépendance au niveau du système n’est nécessaire. La bibliothèque fonctionne sous Windows, macOS et Linux avec Python 3.10 ou version ultérieure.
FontLoader.open() lit les formats TTF, OTF, CFF, Type 1, WOFF, WOFF2 et EOT. FontConverter.convert() écrit les formats TTF, CFF, WOFF et WOFF2. EOT est en lecture seule.
Non. Font.to_bytes() n’est pas implémenté dans la classe de base. Utilisez FontConverter.convert() pour produire un nouveau Font au format souhaité.
Oui. FontSubsetter.subset_by_text(font, text) renvoie un nouveau Font contenant uniquement les glyphes requis pour le texte fourni. FontSubsetter.subset(font, codepoints) et subset_by_gids(font, gids) offrent un contrôle plus fin.