Configuration des polices pour le rendu des feuilles de calcul

Scénarios d’utilisation possibles

Les APIs Aspose.Cells pour Python via .NET permettent de rendre les feuilles de calcul sous forme d’images ainsi que de les convertir en formats PDF et XPS. Pour maximiser la fidélité de la conversion, il est nécessaire que les polices utilisées dans la feuille de calcul soient disponibles dans le répertoire de polices par défaut du système d’exploitation. Si les polices requises ne sont pas présentes, les APIs Aspose.Cells pour Python via .NET tenteront de substituer les polices nécessaires par celles disponibles.

Sélection des polices

Voici le processus que suivent les APIs Aspose.Cells pour Python via .NET en coulisses.

  1. L’API tente de trouver les polices sur le système de fichiers correspondant exactement au nom de police utilisé dans la feuille de calcul.
  2. Si l’API ne parvient pas à trouver les polices portant le même nom exact, elle tente d’utiliser la police par défaut spécifiée dans la propriété DefaultStyle.font du classeur.
  3. Si l’API ne parvient pas à localiser la police définie dans la propriété DefaultStyle.font du classeur, elle tente d’utiliser la police spécifiée dans la propriété PdfSaveOptions.default_font ou ImageOrPrintOptions.default_font.
  4. Si l’API ne parvient pas à localiser la police définie dans PdfSaveOptions.default_font ou ImageOrPrintOptions.default_font, elle tente d’utiliser la police spécifiée dans FontConfigs.default_font_name.
  5. Si l’API ne parvient pas à localiser la police définie dans FontConfigs.default_font_name, elle tente de sélectionner les polices les plus adaptées parmi toutes les polices disponibles.
  6. Enfin, si l’API ne trouve pas de polices sur le système de fichiers, elle rend la feuille de calcul en utilisant Arial.

Définir des dossiers de polices personnalisés

Les APIs Aspose.Cells pour Python via .NET recherchent dans le répertoire de polices par défaut du système d’exploitation pour les polices requises. Si ces polices ne sont pas disponibles dans le répertoire, elles recherchent dans des répertoires personnalisés (définis par l’utilisateur). La classe FontConfigs expose plusieurs moyens de définir des répertoires de polices personnalisés comme détaillé ci-dessous.

  1. FontConfigs.set_font_folder: Cette méthode est utile s’il n’y a qu’un seul dossier à définir.
  2. FontConfigs.set_font_folders: Cette méthode est utile lorsque les polices résident dans des dossiers multiples et que l’utilisateur souhaite définir tous les dossiers séparément plutôt que de combiner toutes les polices dans un seul dossier.
  3. FontConfigs.set_font_sources: Ce mécanisme est utile lorsque l’utilisateur souhaite charger des polices à partir de dossiers multiples ou d’un seul fichier de police ou de données de police à partir d’un tableau d’octets.
from aspose.cells import FileFontSource, FolderFontSource, FontConfigs, MemoryFontSource
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Defining string variables to store paths to font folders & font file
fontFolder1 = dataDir + "Arial"
fontFolder2 = dataDir + "Calibri"
fontFile = dataDir + "arial.ttf"
# Setting first font folder with SetFontFolder method
# Second parameter directs the API to search the subfolders for font files
FontConfigs.set_font_folder(fontFolder1, True)
# Setting both font folders with SetFontFolders method
# Second parameter prohibits the API to search the subfolders for font files
FontConfigs.set_font_folders([fontFolder1, fontFolder2], False)
# Defining FolderFontSource
sourceFolder = FolderFontSource(fontFolder1, False)
# Defining FileFontSource
sourceFile = FileFontSource(fontFile)
# Defining MemoryFontSource
sourceMemory = MemoryFontSource(open(fontFile, "rb").read())
# Setting font sources
FontConfigs.set_font_sources([sourceFolder, sourceFile, sourceMemory])

Mécanisme de substitution de polices

Les APIs Aspose.Cells pour Python via .NET offrent également la possibilité de spécifier une police de substitution pour le rendu. Ce mécanisme est utile lorsqu’une police requise n’est pas disponible sur la machine où la conversion doit avoir lieu. Les utilisateurs peuvent fournir une liste de noms de polices comme alternative à la police initialement requise. Pour ce faire, les APIs Aspose.Cells pour Python via .NET ont exposé la méthode FontConfigs.set_font_substitutes qui accepte 2 paramètres. Le premier paramètre est de type string, qui doit être le nom de la police à substituer. Le second est un tableau de type string. Les utilisateurs peuvent fournir une liste de noms de police comme substitution à la police d’origine (spécifiée dans le premier paramètre).

Voici un scénario d’utilisation simple.

from aspose.cells import FontConfigs
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# Substituting the Arial font with Times New Roman & Calibri
FontConfigs.set_font_substitutes("Arial", ["Times New Roman", "Calibri" ])

Collecte d’informations

En plus des méthodes mentionnées ci-dessus, les APIs Aspose.Cells pour Python via .NET ont également fourni des moyens de recueillir des informations sur les sources et substitutions qui ont été configurées.

  1. La méthode FontConfigs.get_font_sources retourne un tableau de type FontSourceBase contenant la liste des sources de police spécifiées. Au cas où aucune source n’a été définie, la méthode FontConfigs.get_font_sources renverra un tableau vide.
  2. La méthode FontConfigs.get_font_substitutes accepte un paramètre de type string permettant de spécifier le nom de la police pour laquelle la substitution a été définie. Dans le cas où aucune substitution n’a été définie pour le nom de police spécifié, la méthode FontConfigs.get_font_substitutes renverra null.

Sujets avancés