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

Aspose.Font FOSS per a Python

Biblioteca de codi obert Python per a carregar, inspeccionar, convertir i crear subconjunts de fitxers de fonts TTF, OTF, CFF, WOFF, WOFF2 i EOT.

Treballa amb fonts de manera programàtica a Python

Aspose.Font FOSS per a Python és una caixa d’eines pure-Python per a carregar, inspeccionar, convertir, subestablir i previsualitzar tipografies en formats TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 i EOT. La biblioteca s’executa a Python 3.10 o posterior i no requereix cap biblioteca de tipografies del SO externa ni dependències natives.

La biblioteca exposa una API neta per a la càrrega de fonts via FontLoader, accés a glifs via GlyphAccessor, conversió de formats via FontConverter, optimització web via FontCleaner, subsetting conscient del text via FontSubsetter, i animació de fonts variables via AnimationPreviewBuilder. Les metadades de la font com ara el nom, la família, l’estil, el recompte de glifs, la codificació i les mètriques són accessibles a través de la classe base Font sense analitzar manualment les taules binàries.

Aspose.Font FOSS té llicència MIT i es pot instal·lar des de PyPI amb una única ordre pip install. És adequat per a eines de disseny de tipografies, canals de tipografies web, motors de renderització de glifs i qualsevol aplicació Python que necessiti llegir, transformar o generar fitxers de tipografia. Per a la família de productes empresarials, vegeu Aspose.Font — Enterprise Product Family.

Càrrega de fonts i detecció de format

  • Carrega fonts des de rutes de fitxer o bytes en brut amb FontLoader.open() i FontLoader.load()
  • Detecta automàticament el format: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Accediu a les metadades de la tipografia a través de la classe base Font: font_name, font_family, font_style, num_glyphs
  • Llegeix mapes de codificació de glifs amb FontEncoding.unicode_to_gid() i get_all_codepoints()
  • Inspecciona les mètriques de la tipografia amb FontMetrics: ascens, descens, espai entre línies, quadrat em

Casos d'ús típics

  • Cadenes de validació de fonts i extracció de metadades
  • Comprovacions CI/CD que verifiquen el nom de la família de fonts i el recompte de glifs
  • Serveis d’ingesta de fonts web que accepten múltiples formats d’entrada
  • Eines de disseny de tipografies que mostren metadades sense un entorn d’escriptori

Accés a glifs i inspecció de camins

  • Recupera glifs per ID o Unicode amb GlyphAccessor.get_glyph_by_id() i get_glyph_by_unicode()
  • Resolueix tots els glifs d’una cadena amb GlyphAccessor.get_glyphs_for_text()
  • Inspecciona les rutes del contorn del glif com a ordres escrites: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Accediu a la caixa delimitadora del glif, l’amplada d’avançament i les distàncies laterals des de les propietats Glyph
  • Llegeix les parelles de kerning des de KernPair per a càlculs precisos de disposició del text

Casos d'ús típics

  • Comprovacions de cobertura de glifs per a la renderització de text multilingüe
  • Extracció de contorn per a camí SVG o generació de vectors
  • Validació de la taula de kerning en fluxos de treball de QA de fonts
  • Investigació de modelatge de text i experimentació de maquetació de baix nivell

Conversió de fonts

  • Converteix entre TTF, OTF, CFF, WOFF, WOFF2, EOT i Type 1 amb FontConverter.convert()
  • Adapta els tipus de corba de Bézier amb CurveAdapter.quad_to_cubic() i cubic_to_quads()
  • Converteix rutes de glif entre quadràtiques i cúbiques amb convert_path_quad_to_cubic() i convert_path_cubic_to_quad()

Casos d'ús típics

  • Fluxos de treball de fonts web que converteixen fonts mestres TTF a WOFF2 per a la distribució
  • Eina de fosa tipogràfica que exporta a múltiples formats de destinació des d’una única font
  • Conversió d’EOT llegat per a piles de fonts web retrocompatibles
  • Normalització automàtica del format de fonts en la integració contínua

Subconjunt de tipografies

  • Subconjunt de tipografies per text Unicode amb FontSubsetter.subset_by_text()
  • Subconjunt per llista d’ID de glif amb FontSubsetter.subset_by_gids()
  • Genera subconjunts optimitzats per a web amb FontSubsetter.subset_for_web()
  • Aplica perfils predefinits amb nom amb FontSubsetter.subset_by_presets() i available_presets()
  • Analitza la cobertura del subconjunt amb FontSubsetter.analyze_coverage() i analyze_web_coverage()

Casos d'ús típics

  • Reducció de la mida de la càrrega útil WOFF2 per a pàgines web amb conjunts de caràcters limitats
  • Producció de subconjunts de fonts específics per idioma per a implementacions i18n
  • Fluxos de treball de llicència de tipografies que distribueixen subconjunts per conjunt de pàgines
  • Optimització del rendiment per a aplicacions web mòbils

Optimització Web i Previsualitzacions de tipografies variables

  • Elimina les taules heretades i els registres de noms Mac amb FontCleaner.clean_for_web()
  • Comproveu la compatibilitat de l’eix de la tipografia variable amb CompatibilityChecker.compare_fonts() i compare_variable_instances()
  • Genera sweeps d’eixos APNG animats amb AnimationPreviewBuilder.build_axis_sweep()
  • Crea rutes d’animació de diversos passos amb AnimationPreviewBuilder.build_path()

Casos d'ús típics

  • Pàgines d’especímetre de tipografies i exploradors d’eixos interactius per a fundicions tipogràfiques
  • Canals CI que verifiquen el comportament de les fonts variables abans de la distribució
  • Fluxos de rendiment web que descarten taules binàries no essencials
  • Miniatures de vista prèvia de fonts per a aplicacions de gestió de fonts

Carrega un fitxer de font

Obre una font TrueType o OpenType des d’una ruta de fitxer i llegeix les seves metadades bàsiques.

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

Accedeix als glifs d’una cadena de text

Resol tots els glifs d’un punt de codi Unicode i inspecciona els seus camins de contorn.

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)

Genera una animació d’escombrat d’eixos d’una font variable

Creeu un APNG animat que recorre un eix de font variable des del valor d’inici fins al valor final.

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

Neteja una font per al desplegament web

Elimina les taules heretades i els registres de noms de Mac per reduir la mida del binari abans de servir-lo al 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

Preguntes freqüents

Què és Aspose.Font FOSS per a Python?

És una biblioteca gratuïta, amb llicència MIT, pura-Python per a carregar, inspeccionar, convertir i fer subconjunts de fonts en formats TTF, OTF, CFF, Type 1, WOFF, WOFF2 i EOT. No es requereixen dependències natives.

Com instal·lo Aspose.Font FOSS per a Python?

Executeu pip install "aspose-font>=1.0.0". No es necessiten dependències a nivell del sistema. La biblioteca funciona a Windows, macOS i Linux amb Python 3.10 o posterior.

Quins formats de lletra són compatibles?

FontLoader.open() llegeix TTF, OTF, CFF, Type 1, WOFF, WOFF2 i EOT. FontConverter.convert() escriu TTF, CFF, WOFF i WOFF2. EOT és només de lectura.

Està disponible Font.to_bytes()?

No. Font.to_bytes() no està implementat a la classe base. Utilitzeu FontConverter.convert() per generar un nou Font en el format desitjat.

Puc fer un subconjunt d’una font per a la entrega web?

Sí. FontSubsetter.subset_by_text(font, text) retorna un nou Font que conté només els glifs necessaris per al text proporcionat. FontSubsetter.subset(font, codepoints) i subset_by_gids(font, gids) ofereixen un control més precís.

  

Suport i recursos d aprenentatge

 Català