Aspose.Font FOSS pour Python est une boîte à outils pure-Python pour charger, inspecter, convertir, sous-ensemble et prévisualiser les polices à travers 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épendances natives.
La bibliothèque expose une API propre pour le chargement des polices via FontLoader, l’accès aux glyphes via GlyphAccessor, la conversion de format 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 polices. 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 : ascension, descente, écart de ligne, carré d’emGlyphAccessor.get_glyph_by_id() et get_glyph_by_unicode()GlyphAccessor.get_glyphs_for_text()MoveTo, LineTo, QuadraticTo, CurveTo, ClosePathGlyphKernPair pour des calculs précis de mise en page du texteFontConverter.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 OpenTyme à 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ésolvez tous les glyphes pour un point de code Unicode et inspectez leurs chemins.
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 balaie l’axe d’une police variable du début à la fin.
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")
Retirer les tables anciennes et enregistrements de noms Mac pour réduire la taille binaire avant le service 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
Il s’agit d’une bibliothèque Python pure gratuite sous licence MIT pour le chargement, l’inspection, la conversion et le sous-installation de polices dans les 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 requise. La bibliothèque fonctionne sous Windows, macOS et Linux avec Python 3.10 ou version ultérieure.
FontLoader.open() lit TTF, OTF et CFF, Type 1, WOFF et WOff2 et EOT. FontConverter.convert() écrit TFT, CFL et Woff2. L’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 donné. FontSubsetter.subset(font, codepoints) et subset_by_gids(font, gids) offrent un contrôle plus fin.