1. Produits
  2.   Aspose.Font
  3.   Aspose.Font FOSS for Python

Aspose.Font FOSS for Python

Bibliothèque Python open-source pour charger, inspecter, convertir et sous‑ensemblier les fichiers de polices TTF, OTF, CFF, WOFF, WOFF2 et EOT.

Travailler avec des polices de manière programmée en Python

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.

Détection de chargement et formatage des polices

  • Charger les polices à partir de chemins de fichiers ou d’octets bruts avec FontLoader.open() et FontLoader.load()
  • Détecter automatiquement le format : TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Accéder aux métadonnées de la police via la classe de base Font : font_name, font_family, font_style, num_glyphs
  • Lire les cartes d’encodage des glyphes avec FontEncoding.unicode_to_gid() et get_all_codepoints()
  • Inspecter les métriques de la police avec FontMetrics : ascension, descente, écart de ligne, carré d’em

Cas d'utilisation typiques

  • Pipelines de validation des polices et d’extraction des métadonnées
  • Les contrôles CI/CD qui vérifient le nom de la famille des polices et le nombre d’alphabet.
  • Services de saisie des polices Web qui acceptent plusieurs formats d’entrée.
  • Outils de conception de polices qui affichent des métadonnées sans un temps d’exécution pour le bureau.

Accès aux glyphes et inspection du chemin

  • Récupérer les glyphes par ID ou Unicode avec GlyphAccessor.get_glyph_by_id() et get_glyph_by_unicode()
  • Résoudre tous les glyphes d’une chaîne avec GlyphAccessor.get_glyphs_for_text()
  • Inspecter les chemins de contour des glyphes sous forme de commandes tapées : MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Accéder à la boîte englobante du glyphe, à la largeur d’avance et aux marges latérales depuis les propriétés Glyph
  • Lire les paires de crénage depuis KernPair pour des calculs précis de mise en page du texte

Cas d'utilisation typiques

  • Vérifications de couverture glyphes pour le rendu du texte multilingue
  • Extraction de contours pour la génération du chemin ou des vecteurs SVG.
  • Validation des tableaux de base dans les flux de travail d’assurance qualité des polices
  • Recherche sur la mise en forme de texte et expérimentation des mises en page à bas niveau

Conversion de police

  • Convertir entre TTF, OTF et CFF avec FontConverter.convert()
  • Adapter les types de courbe Bezier avec CurveAdapter.quad_to_cubic() et cubic_to_quads()
  • Convertir les chemins de glyphes entre quadratique et cube avec convert_path_quad_to_cubic() et convert_path_cubic_to_quad()

Cas d'utilisation typiques

  • Pipelines de polices Web qui convertissent les policées maîtresses TTF en WOFF2 pour la distribution.
  • Type d’outillage de fonderie qui exporte vers plusieurs cibles formatées à partir d"une source.
  • Conversion EOT ancienne pour les piles de polices Web compatibles avec l’arrière
  • Normalisation automatique du format de police dans l’intégration continue

Subposition de police

  • Sous-ensemble de polices par texte Unicode avec FontSubsetter.subset_by_text()
  • Sous-ensemble par liste d’identifiants de glyphes avec FontSubsetter.subset_by_gids()
  • Produire des sous-ensembles optimisés avec FontSubsetter.subset_for_web()
  • Appliquer des profils prédéfinis nommés avec FontSubsetter.subset_by_presets() et available_presets()
  • Analysez la couverture du sous-ensemble avec FontSubsetter.analyze_coverage() et analyze_web_coverage()

Cas d'utilisation typiques

  • Réduction de la taille des charges utiles WOFF2 pour les pages Web avec un nombre limité d’ensembles de caractères.
  • Produire des sous-ensembles de polices spécifiques à la langue pour les déploiements i18n.
  • Flux de travail pour les licences de polices qui distribuent des sous-ensembles par page.
  • Optimisation des performances pour les applications web mobiles

Optimisation Web et prévisualisation de polices variables

  • Retirer les tables et enregistrements de noms Mac avec FontCleaner.clean_for_web()
  • Vérifiez la compatibilité de l’axe des polices avec CompatibilityChecker.compare_fonts() et compare_variable_instances()
  • Générer des balayages d’axe APNG animés avec AnimationPreviewBuilder.build_axis_sweep()
  • Construire des chemins d’animation à plusieurs étapes avec AnimationPreviewBuilder.build_path()

Cas d'utilisation typiques

  • Pages de modèles de polices et explorateurs d’axes interactifs pour les fonderie de types
  • Pipelines de CI qui vérifient le comportement des polices variables avant la distribution
  • Pipelines de performance Web qui suppriment les tables binaires non essentielles
  • Miniatures d’aperçu de police pour les applications de gestion des polices

Charger un fichier de police

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

Accéder aux glyphes pour une chaîne de texte

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)

Générer une animation de balayage d’axe variable de police

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")

Nettoyer une police pour le déploiement Web

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

Foire aux questions

Qu’est‑ce que Aspose.Font FOSS pour Python ?

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.

Comment installer Aspose.Font FOSS pour Python ?

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.

Quels sont les formats de police pris en charge ?

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.

Font.to_bytes ((() est disponible ?

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é.

Je peux sous-définir une police pour la livraison sur le web ?

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.

  

Ressources de support et d'apprentissage

 Français