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

Aspose.Font FOSS per Python

Libreria Python open source per caricare, ispezionare, convertire e creare sottoinsiemi di file di font TTF, OTF, CFF, WOFF, WOFF2 ed EOT.

Lavora con i font in modo programmatico in Python

Aspose.Font FOSS per Python è un toolkit pure-Python per caricare, ispezionare, convertire, ridurre e visualizzare in anteprima i font nei formati TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 ed EOT. La libreria funziona su Python 3.10 o versioni successive e non richiede librerie di font OS esterne né dipendenze native.

La libreria espone un’API pulita per il caricamento dei font tramite FontLoader, l’accesso ai glifi tramite GlyphAccessor, la conversione di formato tramite FontConverter, l’ottimizzazione web tramite FontCleaner, il sottoinsieme consapevole del testo tramite FontSubsetter, e l’animazione dei font variabili tramite AnimationPreviewBuilder. I metadati del font, come nome, famiglia, stile, conteggio dei glifi, codifica e metriche, sono accessibili tramite la classe base Font senza dover analizzare manualmente le tabelle binarie.

Aspose.Font FOSS è rilasciato con licenza MIT e installabile da PyPI con un unico comando pip install. È adatto per strumenti di progettazione di font, pipeline di font web, motori di rendering di glifi e qualsiasi applicazione Python che necessiti di leggere, trasformare o produrre file di font. Per la famiglia di prodotti enterprise, vedere Aspose.Font — Enterprise Product Family.

Caricamento dei font e rilevamento del formato

  • Carica i font da percorsi di file o byte grezzi con FontLoader.open() e FontLoader.load()
  • Rileva automaticamente il formato: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Accedi ai metadati del font tramite la classe base Font: font_name, font_family, font_style, num_glyphs
  • Leggi le mappe di codifica dei glifi con FontEncoding.unicode_to_gid() e get_all_codepoints()
  • Ispeziona le metriche del font con FontMetrics: ascendente, discendente, interlinea, quadrato em

Casi d'Uso Tipici

  • Pipeline di convalida dei font e di estrazione dei metadati
  • Controlli CI/CD che verificano il nome della famiglia di caratteri e il conteggio dei glifi
  • Servizi di ingestione di font web che accettano più formati di input
  • Strumenti di progettazione di font che visualizzano i metadati senza un runtime desktop

Accesso ai glifi e ispezione dei percorsi

  • Recupera i glifi per ID o Unicode con GlyphAccessor.get_glyph_by_id() e get_glyph_by_unicode()
  • Risolvi tutti i glifi per una stringa con GlyphAccessor.get_glyphs_for_text()
  • Ispeziona i percorsi del contorno del glifo come comandi digitati: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Accedi al riquadro di delimitazione del glifo, alla larghezza di avanzamento e alle sporgenze laterali dalle proprietà Glyph proprietà
  • Leggi le coppie di kerning da KernPair per calcoli accurati del layout del testo

Casi d'uso tipici

  • Controlli di copertura dei glifi per il rendering di testo multilingue
  • Estrazione del contorno per percorso SVG o generazione di vettori
  • Validazione della tabella di kerning nei flussi di lavoro di QA dei font
  • Ricerca sulla modellazione del testo e sperimentazione di layout a basso livello

Conversione dei font

  • Converti tra TTF, OTF, CFF, WOFF, WOFF2, EOT e Type 1 con FontConverter.convert()
  • Adatta i tipi di curva Bézier con CurveAdapter.quad_to_cubic() e cubic_to_quads()
  • Converti i percorsi dei glifi tra quadratico e cubico con convert_path_quad_to_cubic() e convert_path_cubic_to_quad()

Casi d'uso tipici

  • Pipeline di font web che convertono i font master TTF in WOFF2 per la distribuzione
  • Strumenti per fonderia tipografica che esportano verso più formati di destinazione da una singola sorgente
  • Conversione Legacy EOT per stack di font web retrocompatibili
  • Normalizzazione automatica del formato dei font nell’integrazione continua

Sottoinsieme di Font

  • Sottogruppo di font per testo Unicode con FontSubsetter.subset_by_text()
  • Sottoinsieme per elenco di ID glifo con FontSubsetter.subset_by_gids()
  • Crea sottoinsiemi ottimizzati per il web con FontSubsetter.subset_for_web()
  • Applica profili predefiniti nominati con FontSubsetter.subset_by_presets() e available_presets()
  • Analizza la copertura del sottoinsieme con FontSubsetter.analyze_coverage() e analyze_web_coverage()

Casi d'uso tipici

  • Ridurre la dimensione del payload WOFF2 per le pagine web con set di caratteri limitati
  • Produzione di sottoinsiemi di font specifici per lingua per le distribuzioni i18n
  • Flussi di lavoro di licenza dei font che distribuiscono sottoinsiemi per set di pagine
  • Ottimizzazione delle prestazioni per le applicazioni web mobili

Ottimizzazione Web e Anteprime di Font Variabili

  • Rimuovi le tabelle legacy e i record dei nomi Mac con FontCleaner.clean_for_web()
  • Verifica la compatibilità dell’asse del font variabile con CompatibilityChecker.compare_fonts() e compare_variable_instances()
  • Genera sweep dell’asse APNG animati con AnimationPreviewBuilder.build_axis_sweep()
  • Crea percorsi di animazione a più fasi con AnimationPreviewBuilder.build_path()

Casi d'uso tipici

  • Pagine di campioni di font e esploratori di assi interattivi per le fonderie tipografiche
  • Pipeline CI che verificano il comportamento dei font variabili prima della distribuzione
  • Pipeline di prestazioni web che eliminano tabelle binarie non essenziali
  • Miniature di anteprima dei font per le applicazioni di gestione dei font

Carica un file di font

Apri un font TrueType o OpenType da un percorso di file e leggi i suoi metadati di 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

Accedi ai glifi per una stringa di testo

Risolvi tutti i glifi per un punto di codice Unicode e ispeziona i loro percorsi di contorno.

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 un’animazione di sweep dell’asse di un Variable Font

Crea un APNG animato che percorra un asse di font variabile dal valore iniziale a quello 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")

Pulisci un font per il deployment web

Rimuovi le tabelle legacy e i record dei nomi Mac per ridurre la dimensione del binario prima della distribuzione 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

Domande Frequenti

Che cos’è Aspose.Font FOSS per Python?

È una libreria gratuita, con licenza MIT, pure-Python per caricare, ispezionare, convertire e creare sottoinsiemi di font nei formati TTF, OTF, CFF, Type 1, WOFF, WOFF2 ed EOT. Non sono richieste dipendenze native.

Come installo Aspose.Font FOSS per Python?

Esegui pip install "aspose-font>=1.0.0". Non sono necessarie dipendenze a livello di sistema. La libreria funziona su Windows, macOS e Linux con Python 3.10 o versioni successive.

Quali formati di font sono supportati?

FontLoader.open() legge TTF, OTF, CFF, Type 1, WOFF, WOFF2 ed EOT. FontConverter.convert() scrive TTF, CFF, WOFF e WOFF2. EOT è solo in lettura.

Font.to_bytes() è disponibile?

No. Font.to_bytes() non è implementato nella classe base. Usa FontConverter.convert() per generare un nuovo Font nel formato desiderato.

Posso creare un sottoinsieme di un font per la consegna web?

Sì. FontSubsetter.subset_by_text(font, text) restituisce un nuovo Font contenente solo i glifi necessari per il testo fornito. FontSubsetter.subset(font, codepoints) e subset_by_gids(font, gids) offrono un controllo più fine.

  

Risorse di Supporto e Apprendimento

 Italiano