Domande frequenti

Domande frequenti

Licenze & Open Source

Qual è il modello di licenza?

Aspose.Font FOSS per Python è rilasciato sotto il Licenza MIT. Puoi usare, copiare, modificare, fondere, pubblicare, distribuire, concedere in sublicenza o vendere copie del software senza restrizioni. L’unico requisito è che l’avviso di copyright e il testo della licenza siano inclusi in tutte le copie o in parti sostanziali del software.

Posso usarlo in prodotti commerciali?

Sì. La licenza MIT consente l’uso in prodotti closed‑source e commerciali. Non ci sono obblighi di royalty o attribuzione oltre a mantenere l’intestazione del copyright nelle tue copie della libreria stessa. Nota: il CffFont la classe è stata aggiornata (API_MODIFIED); il codice esistente potrebbe richiedere lievi aggiustamenti.

Esiste una versione a pagamento con più funzionalità?Aspose.Font FOSS è l’edizione open-source. L’edizione FOSS copre TTF, OTF, CFF,

Type 1, WOFF, WOFF2 e EOT — che copre la maggior parte del lavoro tipografico reale.


Installazione e Requisiti

Come installo Aspose.Font FOSS per Python?

Installa il pacchetto aggiornato (richiede Python 3.10+):

git clone https://github.com/aspose-font-foss/Aspose.Font-FOSS-for-Python.git
cd Aspose.Font-FOSS-for-Python
pip install -e .

Il font API è stato modificato (API_MODIFIED). Non sono richieste dipendenze native a livello di sistema.

Quali versioni di Python sono supportate?

Python 3.10 e successive. La libreria utilizza solo le funzionalità della libreria standard, quindi funziona su CPython e implementazioni PyPy che supportano Python 3.10+.

Ci sono dipendenze native o di piattaforma?

No. Aspose.Font FOSS per Python non ha estensioni C, né font di sistema, né API di piattaforma. Funziona identicamente su Windows, macOS e Linux.


Supporto dei formati

Quali formati di font possono essere letti?

FontLoader.open() può caricare TTF, OTF, CFF (standalone), Type 1, WOFF, WOFF2 e EOT.

from aspose_font import FontLoader

font = FontLoader.open("MyFont.ttf")

Quali formati possono essere scritti?

FontConverter.convert() supporta la conversione in TTF, CFF, WOFF e WOFF2. Il font di output può essere salvato in byte o in un flusso di file.

La decompressione WOFF2 è integrata?

Sì. La compressione e decompressione Brotli di WOFF2 sono implementate interamente all’interno della libreria. Non è necessario alcun pacchetto brotli esterno.


API Usage

Come carico un font e ne ispeziono i metadati?

Usa FontLoader.open() che restituisce un’istanza Font. Per i font TTF/OTF esegui il cast a TtfFont per accedere alle proprietà specifiche del TTF:

from aspose_font import FontLoader
from aspose_font import TtfFont

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
print(ttf_font.font_name)
print(ttf_font.num_glyphs)

Come converto un TTF in WOFF2?

Carica il font con FontLoader.open(), poi passalo a FontConverter.convert() specificando FontType.WOFF2 come destinazione. L’oggetto restituito è un’istanza Woff2Font pronta per la serializzazione:

from aspose_font import FontLoader
from aspose_font.converter import FontConverter  # internal API — may change between releases
from aspose_font import FontType

font = FontLoader.open("Roboto-Regular.ttf")
woff2 = FontConverter.convert(font, FontType.WOFF2)

Come creo un sottoinsieme di un font per la consegna web?

Usa FontSubsetter.subset_by_text() per generare un nuovo font che includa solo i glifi necessari a renderizzare la stringa di testo fornita, riducendo la dimensione del file per l’inserimento nella pagina web:

from aspose_font import FontLoader
from aspose_font import FontSubsetter

font = FontLoader.open("Roboto-Regular.ttf")
subset = FontSubsetter.subset_by_text(font, "Hello World")

Come accedo ai singoli glifi?

Usa Font.glyph_accessor che implementa GlyphAccessor. Chiama get_glyph_by_unicode() con un punto di codice Unicode per recuperare l’oggetto glifo corrispondente e ispezionarne le metriche o il contorno:

from aspose_font import FontLoader

font = FontLoader.open("Roboto-Regular.ttf")
glyph = font.glyph_accessor.get_glyph_by_unicode(0x0041)  # 'A'
print(glyph.glyph_id)

Limitazioni note

Font.to_bytes() è implementato?

La classe base astratta Font.to_bytes(font_type) solleva NotImplementedError se chiamata direttamente. Tuttavia, tutte le classi di font concrete — TtfFont, CffFont, WoffFont, Woff2Font, EotFont e Type1Font — implementano completamente to_bytes(). Carica un font con FontLoader.open() e chiama to_bytes() sull’istanza concreta restituita. FontConverter.convert() può anche produrre un nuovo font in qualsiasi formato di destinazione supportato.

Tutti i tipi di tabella in TtfTableSet sono popolati?

Solo le tabelle comuni (head, hhea, maxp, os2, name, post, cmap, loca, hmtx, kern) sono esposte come proprietà denominate su TtfTableSet. Le altre tabelle possono essere lette come byte grezzi tramite TtfFont.get_table_bytes(tag).

La libreria supporta l’instanziazione di font variabili?

Sì. TtfFont.instantiate(coordinates) produce un TtfFont statico alle coordinate degli assi specificate. Usa TtfFont.is_variable e TtfFont.axes per rilevare prima gli assi di variazione.

Vedi anche

 Italiano