Fonts

Fonts

Ce guide montre comment inspecter les polices référencées dans un document, extraire les données de police incorporées, et contrôler l’intégration de police TrueType lors de l’enregistrement avec Aspose.Words FOSS pour .NET. Aspose.Words FOSS pour .NET suit chaque police référencée par un document chargé via FontInfoCollection, et expose les métadonnées par police, l’extraction de police incorporée, et les contrôles d’intégration lors de l’enregistrement via FontInfo. Document.FontSettings et LoadOptions.FontSettings fournissent le point d’entrée FontSettings (délibérément minimal, dans cette édition).


Inspection des polices utilisées dans un document

DocumentBase.FontInfos (hérité de Document) renvoie un FontInfoCollection décrivant chaque police référencée n’importe où dans le document. Indexez-le par nom (par ex. fontInfos["Arial"]), testez son existence avec Contains(name), comptez-les avec Count, ou énumérez l’ensemble de la collection via GetEnumerator().


Propriétés et classification des polices

Chaque FontInfo décrit une police : Name et AltName l’identifient, Family la classe via l’énumération FontFamily (Auto, Roman, Swiss, Modern, Script, Decorative), Pitch rapporte son FontPitch (Default, Fixed, Variable), et IsTrueType, Charset et Panose exposent des données de correspondance de police de niveau inférieur.


Extraction de police incorporée

Si un document possède des polices incorporées, FontInfo.GetEmbeddedFont(format, style) renvoie les octets bruts de la police incorporée pour un EmbeddedFontFormat donné (EmbeddedOpenType ou OpenType) et EmbeddedFontStyle (Regular, Bold, Italic, BoldItalic). GetEmbeddedFontAsOpenType(style) renvoie la police convertie directement au format OpenType, quel que soit le mode d’incorporation initial.


Droits de licence d’incorporation de polices

Avant d’extraire ou de réincorporer une police, vérifiez FontInfo.EmbeddingLicensingRights, un objet FontEmbeddingLicensingRights. EmbeddingUsagePermissions indique le niveau de licence via l’énumération FontEmbeddingUsagePermissions (Installable, RestrictedLicense, PrintAndPreview, Editable), tandis que NoSubsetting et BitmapEmbeddingOnly signalent des restrictions supplémentaires imposées par le fournisseur de la police.


Contrôle de l’incorporation des polices lors de l’enregistrement

FontInfoCollection comporte également des commutateurs d’incorporation au niveau du document: définissez EmbedTrueTypeFonts sur true pour incorporer chaque police TrueType utilisée dans le document lors de l’enregistrement, EmbedSystemFonts pour inclure les polices généralement supposées présentes sur tout système, et SaveSubsetFonts pour incorporer uniquement les glyphes réellement utilisés plutôt que la police complète.


Portée de FontSettings dans cette édition

Document.FontSettings et LoadOptions.FontSettings renvoient tous deux un objet FontSettings, et FontSettings.DefaultInstance expose une instance par défaut partagée. Dans cette édition FOSS, la surface API de FontSettings se limite à cette propriété d’instance par défaut — la résolution des polices basée sur les dossiers et le système, qui ailleurs dans Aspose.Words est utilisée pour substituer ou résoudre les polices pour la mise en page et le rendu, n’est pas présente, car la mise en page et le rendu sont hors du champ de cette édition. La gestion des polices ici signifie l’inspection des métadonnées et l’incorporation, pas la substitution de polices pour le rendu.


Conseils et meilleures pratiques

  • Vérifiez toujours FontInfo.EmbeddingLicensingRights.EmbeddingUsagePermissions avant d’extraire ou de redistribuer une police intégrée — certaines polices sont uniquement licenciées RestrictedLicense ou PrintAndPreview.
  • Utilisez GetEmbeddedFontAsOpenType() lorsque vous avez besoin d’un format de sortie cohérent, quel que soit la façon dont le document source a intégré la police (EmbeddedOpenType vs OpenType).
  • Définissez FontInfoCollection.SaveSubsetFonts sur true pour réduire la taille du fichier de sortie lors de l’intégration de polices qui n’utilisent que quelques glyphes.
  • FontInfoCollection.Contains(name) est moins coûteux que l’indexation et la gestion d’une recherche infructueuse (p. ex. fontInfos[name]) lorsque vous avez seulement besoin de tester la présence d’une police.

Problèmes courants

ProblèmeCauseCorrection
GetEmbeddedFont() renvoie aucune donnée exploitableLa police référencée n’est en réalité pas intégrée dans le documentVérifiez les paramètres d’intégration du document avant de supposer que les données de police sont présentes
L’indexation de FontInfoCollection par nom ne trouve rienLe nom de la police ne correspond pas exactement, y compris la casseÉnumérer FontInfoCollection avec GetEnumerator() afin de confirmer la chaîne exacte Name
Les API de substitution/résolution des polices attendues sont manquantesLa résolution des sources de polices basée sur les dossiers et le système n’est pas implémentée dans cette édition FOSSUtilisez FontInfo/FontInfoCollection uniquement pour les métadonnées et l’intégration ; la substitution de polices pour le rendu ne fait pas partie du périmètre de cette édition

FAQ

Comment lister toutes les polices référencées par un document?

Énumérez Document.FontInfos (un FontInfoCollection) via GetEnumerator(), ou indexez-le par son nom pour rechercher un spécifique (p. ex. fontInfos["Arial"]).

Puis-je extraire les octets bruts d’une police intégrée d’un document?

Oui, si la police est intégrée — appelez FontInfo.GetEmbeddedFont(format, style) pour le format intégré d’origine, ou GetEmbeddedFontAsOpenType(style) pour normaliser le résultat en OpenType.

Comment m’assurer que les polices sont intégrées lors de l’enregistrement d’un document?

Définissez FontInfoCollection.EmbedTrueTypeFonts sur true avant d’enregistrer; ajoutez EmbedSystemFonts si vous avez également besoin que les polices soient supposées présentes sur n’importe quel système, et SaveSubsetFonts pour n’intégrer que les glyphes utilisés.

Cette édition prend-t-elle en charge la résolution des polices à partir d’un dossier personnalisé pour le rendu?

Non — la résolution des sources de polices basée sur les dossiers et le système (FontSettings configuration de source) n’est pas implémentée ici, car elle sert à la mise en page et au rendu, qui sont hors du champ de cette édition FOSS.

Que signifie FontEmbeddingLicensingRights.NoSubsetting?

Il s’agit d’un indicateur de licence signalé par les droits d’intégration du fournisseur de police: lorsque true, la police ne peut pas être sous-ensemble uniquement aux glyphes utilisés.


API Reference Résumé

Classe / MéthodeDescription
FontInfoCollectionPolices référencées dans un document ; indexeur par nom (fontInfos[name]), Contains(), Count, GetEnumerator(), plus EmbedTrueTypeFonts/EmbedSystemFonts/SaveSubsetFonts
FontInfoMétadonnées d’une police : Name, AltName, Family, Pitch, IsTrueType, Charset, Panose, EmbeddingLicensingRights
FontInfo.GetEmbeddedFont() / GetEmbeddedFontAsOpenType()Extraire les octets de police incorporée
EmbeddedFontFormat / EmbeddedFontStyleÉnumérations identifiant le format et la variante de style d’une police incorporée
FontEmbeddingLicensingRights / FontEmbeddingUsagePermissionsRestrictions de licence d’incorporation signalées pour chaque police
FontSettingsPoint d’entrée minimal des paramètres de police (Document.FontSettings, LoadOptions.FontSettings); aucune résolution de source de police dans cette édition

Voir aussi

 Français