Fonts

Fonts

Questa guida mostra come ispezionare i font referenziati in un documento, estrarre i dati dei font incorporati e controllare l’incorporamento dei font TrueType al salvataggio con Aspose.Words FOSS per .NET. Aspose.Words FOSS per .NET tiene traccia di ogni font referenziato da un documento caricato tramite FontInfoCollection e espone i metadati per font, l’estrazione dei font incorporati e i controlli di incorporamento al salvataggio tramite FontInfo. Document.FontSettings e LoadOptions.FontSettings forniscono il punto di ingresso FontSettings (deliberatamente minimalista, in questa edizione).


Ispezione dei font usati in un documento

DocumentBase.FontInfos (eredita da Document) restituisce un FontInfoCollection che descrive ogni font referenziato in qualsiasi punto del documento. Indicizzalo per nome (ad es. fontInfos["Arial"]), verifica se esiste con Contains(name), contali con Count, o elenca l’intera collezione tramite GetEnumerator().


Proprietà dei font e classificazione

Ogni FontInfo descrive un font: Name e AltName lo identificano, Family lo classifica tramite l’enumerazione FontFamily (Auto, Roman, Swiss, Modern, Script, Decorative), Pitch riporta il suo FontPitch (Default, Fixed, Variable), e IsTrueType, Charset e Panose espongono dati di corrispondenza dei font a livello inferiore.


Estrazione dei font incorporati

Se un documento contiene font incorporati, FontInfo.GetEmbeddedFont(format, style) restituisce i byte grezzi del font incorporato per un determinato EmbeddedFontFormat (EmbeddedOpenType o OpenType) e EmbeddedFontStyle (Regular, Bold, Italic, BoldItalic). GetEmbeddedFontAsOpenType(style) restituisce il font convertito direttamente al formato OpenType, indipendentemente da come è stato originariamente incorporato.


Diritti di licenza per l’incorporamento dei font

Prima di estrarre o reinserire un font, controlla FontInfo.EmbeddingLicensingRights, un oggetto FontEmbeddingLicensingRights. EmbeddingUsagePermissions segnala il livello di licenza tramite l’enum FontEmbeddingUsagePermissions (Installable, RestrictedLicense, PrintAndPreview, Editable), mentre NoSubsetting e BitmapEmbeddingOnly indicano ulteriori restrizioni impostate dal fornitore del font.


Controllo dell’incorporamento dei font al salvataggio

FontInfoCollection include anche interruttori di incorporamento a livello di documento: imposta EmbedTrueTypeFonts su true per incorporare ogni font TrueType usato nel documento al momento del salvataggio, EmbedSystemFonts per includere i font normalmente considerati presenti su qualsiasi sistema, e SaveSubsetFonts per incorporare solo i glifi effettivamente utilizzati anziché l’intero font.


Ambito di FontSettings in questa edizione

Document.FontSettings e LoadOptions.FontSettings restituiscono entrambi un oggetto FontSettings, e FontSettings.DefaultInstance espone un’istanza predefinita condivisa. In questa edizione FOSS, la superficie API di FontSettings è limitata a quella proprietà dell’istanza predefinita — la risoluzione delle font basata su cartelle e sul sistema, che altrove in Aspose.Words è usata per sostituire o risolvere i font per il layout e il rendering delle pagine, non è presente, poiché il layout e il rendering delle pagine sono al di fuori dell’ambito di questa edizione. La gestione dei font qui significa ispezione dei metadati e incorporamento, non sostituzione dei font per il rendering.


Suggerimenti e migliori pratiche

  • Controlla sempre FontInfo.EmbeddingLicensingRights.EmbeddingUsagePermissions prima di estrarre o ridistribuire un font incorporato — alcuni font sono concessi in licenza solo RestrictedLicense o PrintAndPreview.
  • Usa GetEmbeddedFontAsOpenType() quando hai bisogno di un formato di output coerente indipendentemente da come il documento sorgente ha incorporato il font (EmbeddedOpenType vs OpenType).
  • Imposta FontInfoCollection.SaveSubsetFonts su true per ridurre la dimensione del file di output quando incorpori font che usano solo un piccolo numero di glifi.
  • FontInfoCollection.Contains(name) è più economico rispetto all’indicizzazione e alla gestione di una ricerca non riuscita (ad esempio fontInfos[name]) quando devi solo verificare la presenza di un font.

Problemi comuni

ProblemaCausaCorrezione
GetEmbeddedFont() non restituisce dati utilizzabiliIl font di riferimento non è effettivamente incorporato nel documentoVerifica le impostazioni di incorporamento del documento prima di presumere che i dati del font siano presenti
Indicizzare FontInfoCollection per nome non restituisce nullaIl nome del font non corrisponde esattamente, compresa la differenza tra maiuscole e minuscoleElenca FontInfoCollection con GetEnumerator() per confermare la stringa esatta Name
Le API di sostituzione/risoluzione dei font previste sono mancantiLa risoluzione delle sorgenti dei font basata su cartelle e sul sistema non è implementata in questa edizione FOSSUsa FontInfo/FontInfoCollection solo per i metadati e l’incorporamento; la sostituzione dei font per il rendering non fa parte dell’ambito di questa edizione

FAQ

Come posso elencare tutti i font a cui un documento fa riferimento?

Enumera Document.FontInfos (un FontInfoCollection) tramite GetEnumerator(), oppure indicizzalo per nome per cercare uno specifico (ad esempio fontInfos["Arial"]).

Posso estrarre i byte grezzi di un font incorporato da un documento?

Sì, se il font è incorporato — chiama FontInfo.GetEmbeddedFont(format, style) per il formato originale incorporato, oppure GetEmbeddedFontAsOpenType(style) per normalizzare il risultato a OpenType.

Come faccio a garantire che i font siano incorporati quando salvo un documento?

Imposta FontInfoCollection.EmbedTrueTypeFonts su true prima di salvare; aggiungi EmbedSystemFonts se hai anche bisogno che i font siano considerati presenti su qualsiasi sistema, e SaveSubsetFonts per incorporare solo i glifi in uso.

Questa edizione supporta la risoluzione dei font da una cartella personalizzata per il rendering?

No — la risoluzione delle font basata su cartelle e sul sistema (FontSettings configurazione della sorgente) non è implementata qui, poiché serve al layout e al rendering delle pagine, che sono al di fuori dell’ambito di questa edizione FOSS.

Cosa significa FontEmbeddingLicensingRights.NoSubsetting?

È un flag di licenza segnalato dai diritti di incorporamento del fornitore del font: quando true, il font non può essere sottoposto a subset solo ai glifi in uso.


API Reference Riepilogo

Classe / MetodoDescrizione
FontInfoCollectionFont riferiti in un documento; indicizzatore per nome (fontInfos[name]), Contains(), Count, GetEnumerator(), più EmbedTrueTypeFonts/EmbedSystemFonts/SaveSubsetFonts
FontInfoMetadati di un font: Name, AltName, Family, Pitch, IsTrueType, Charset, Panose, EmbeddingLicensingRights
FontInfo.GetEmbeddedFont() / GetEmbeddedFontAsOpenType()Estrai i byte del font incorporato
EmbeddedFontFormat / EmbeddedFontStyleEnum che identificano il formato e la variante di stile di un font incorporato
FontEmbeddingLicensingRights / FontEmbeddingUsagePermissionsRestrizioni di licenza di incorporamento riportate per font
FontSettingsPunto di ingresso minimale per le impostazioni dei font (Document.FontSettings, LoadOptions.FontSettings); nessuna risoluzione della sorgente dei font in questa edizione

Vedi anche

 Italiano