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

Aspose.Font FOSS for Python

Libreria open-source Python per il caricamento, l’ispezione, la conversione e il subset di file di font TTF, OTF, CFF, WOFF, WOFF2 ed EOT.

Lavorare con i font 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 pulito per il caricamento dei font tramite FontLoader, l’accesso ai glifi tramite GlyphAccessor, la conversione dei formati tramite FontConverter, l’ottimizzazione web tramite FontCleaner, il subset testuale consapevole 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 dei 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 e rilevamento del formato delle font

  • Caricare i caratteri da percorsi di file o byte grezzi con FontLoader.open() e FontLoader.load()
  • Format di rilevamento automatico: TTF, OTF , CFF, WOFF , WOff2, EOT, Tipo 1
  • Accedere ai metadati di font tramite la classe base Font: font_name, font_family , font_style e num_glyphs
  • Leggi gli grafici di codifica degli glifi con FontEncoding.unicode_to_gid() e get_all_codepoints()
  • Controllare le metriche di carattere con FontMetrics: ascesa, discesa , intervallo tra linee, em-quadrato

Casi tipici di utilizzo

  • Pipalette di convalida delle font e estrazione dei metadati
  • Controlli CI/CD che verificano il nome della famiglia di caratteri e il numero degli glifi
  • Servizi di ingestione di caratteri web che accettano più formati di input.
  • Strumenti di progettazione dei caratteri che visualizzano i metadati senza un tempo d’esecuzione desktop

Accesso al glifo e ispezione del percorso

  • Ritracci glifi per ID o Unicode con GlyphAccessor.get_glyph_by_id() e get_glyph_by_unicode()
  • Risolvi tutti gli ilighi per una stringa con GlyphAccessor.get_glyphs_for_text()
  • Ispezionare i percorsi del contorno degli glifi come comandi digitati: MoveTo, LineTo , QuadraticTo .CurveTo, ClosePath.
  • Accedere al campo di delimitazione degli glifi, alla larghezza avanzata e ai cuscinetti laterali dalle proprietà Glyph
  • Leggere le coppie di kerning da KernPair per calcoli accurati del layout del testo

Casi tipici di utilizzo

  • Controlli di copertura degli glifi per la traduzione multilingue del testo
  • Estrazione di schemi per la generazione del percorso o vettoriale SVG
  • Validazione della tabella di riferimento nei flussi di lavoro QA dei caratteri
  • Ricerca sulla modellazione dei testi e sperimentazione di layout a basso livello

Conversione di caratteri

  • Convertire tra TTF, OTF , CFF, WOFF , WOff2, EOT e Tipo 1 con FontConverter.convert()
  • Adattare i tipi di curva Bezier con CurveAdapter.quad_to_cubic() e cubic_to_quads()
  • Convertire percorsi glifici tra quadratica e cubica con convert_path_quad_to_cubic() e convert_path_cubic_to_quad()

Casi tipici di utilizzo

  • Pipeline di font web che convertono i caratteri master TTF in WOFF2 per la distribuzione.
  • Tipo di attrezzatura per la fonderia che esporta da una fonte a target in più formati
  • Conversione EOT tradizionale per le pile di caratteri web retrocompatibili
  • Normalizzazione automatizzata del formato di carattere in integrazione continua

Sottosettatura di caratteri

  • Sottoinsieme di caratteri da testo Unicode con FontSubsetter.subset_by_text()
  • Sottoinsieme per lista di identificatori degli glifi con FontSubsetter.subset_by_gids()
  • Produci sottoinsiemi ottimizzati per il web con FontSubsetter.subset_for_web()
  • Applicare i profili preset nominati con FontSubsetter.subset_by_presets() e available_presets()
  • Analisi della copertura del sottoinsieme con FontSubsetter.analyze_coverage() e analyze_web_coverage()

Casi tipici di utilizzo

  • Riduzione della dimensione del carico utile WOFF2 per le pagine web con set di caratteri limitati
  • Produzione di sottosettini di caratteri specifici per le distribuzioni i18n
  • Flussi di lavoro per la licenza delle font che distribuiscono sottoinsiemi per set di pagine
  • Ottimizzazione delle prestazioni per le applicazioni web mobili

Ottimizzazione del Web e anteprime di caratteri variabili

  • Strip tabelle e record di nome Mac con FontCleaner.clean_for_web()
  • Verificare la compatibilità dell’asse della font variabile con CompatibilityChecker.compare_fonts() e compare_variable_instances()
  • Generare spazi di asse APNG animati con AnimationPreviewBuilder.build_axis_sweep()
  • Costruire percorsi di animazione multi-passo con AnimationPreviewBuilder.build_path()

Casi tipici di utilizzo

  • Pagine di campioni di caratteri e esploratori interattivi degli assi per fonderie di tipi
  • Pipe line di CI che verificano il comportamento variabile dei caratteri prima della distribuzione
  • Pipeline di prestazioni web che escludono tabelle binarie non essenziali
  • Miniature di anteprima dei caratteri per le applicazioni di gestione dei font

Caricare un file di caratteri

Aprire un font TrueType o OpenTyme da una traccia di file e leggere i suoi metadati 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

Glifsi di accesso per una stringa di testo

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

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)

Generare un’animazione di scansione dell’asse variabile del carattere

Creare un APNG animato che spazza l’asse di una font variabile dal valore iniziale al valore 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")

Pulire un font per l’implementazione del Web

Strip tabelle legacy e record di nomi Mac per ridurre le dimensioni binarie prima del web serving.

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 Python pura gratuita con licenza MIT per il caricamento, l’ispezione, la conversione e la sottosettazione di caratteri in formati TTF, OTF , CFF, Tipo 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 sono i formati di carattere supportati?

FontLoader.open() legge TTF, OTF , CFF, Tipo 1, WOFF , WOff2 e EOT. FontConverter.convert() scrive TFT, Cff, WOF e WOFL2. Eot è solo lettura.

Font.to_bytes() è disponibile?

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

Posso sottoimpostare un font per la consegna web?

Sì. FontSubsetter.subset_by_text(font, text) restituisce un nuovo Font contenente solo gli glifi richiesti per il testo dato.FontSubsetter.subset(font, codepoints) e subset_by_gids(font, gids) danno un controllo più preciso.

  

Risorse di Supporto e Apprendimento

 Italiano