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.
FontLoader.open() e FontLoader.load()Font: font_name, font_family, font_style, num_glyphsFontEncoding.unicode_to_gid() e get_all_codepoints()FontMetrics: ascendente, discendente, interlinea, quadrato emGlyphAccessor.get_glyph_by_id() e get_glyph_by_unicode()GlyphAccessor.get_glyphs_for_text()MoveTo, LineTo, QuadraticTo, CurveTo, ClosePathGlyph proprietàKernPair per calcoli accurati del layout del testoFontConverter.convert()CurveAdapter.quad_to_cubic() e cubic_to_quads()convert_path_quad_to_cubic() e convert_path_cubic_to_quad()FontSubsetter.subset_by_text()FontSubsetter.subset_by_gids()FontSubsetter.subset_for_web()FontSubsetter.subset_by_presets() e available_presets()FontSubsetter.analyze_coverage() e analyze_web_coverage()FontCleaner.clean_for_web()CompatibilityChecker.compare_fonts() e compare_variable_instances()AnimationPreviewBuilder.build_axis_sweep()AnimationPreviewBuilder.build_path()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
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)
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")
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
È 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.
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.
FontLoader.open() legge TTF, OTF, CFF, Type 1, WOFF, WOFF2 ed EOT. FontConverter.convert() scrive TTF, CFF, WOFF e WOFF2. EOT è solo in lettura.
No. Font.to_bytes() non è implementato nella classe base. Usa FontConverter.convert() per generare un nuovo Font nel formato desiderato.
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.