Police PowerPoint personnalisée en Python

Charger des polices personnalisées

Aspose.Slides vous permet de charger des polices qui sont rendues dans les présentations sans avoir à les installer. Les polices sont chargées à partir d’un répertoire personnalisé.

  1. Créez une instance de la classe FontsLoader et appelez la méthode load_external_fonts.
  2. Chargez la présentation qui sera rendue.
  3. Videz le cache de la classe FontsLoader.

Ce code Python démontre le processus de chargement de polices :

import aspose.slides as slides

# Le chemin vers le répertoire des documents.
dataDir = "C:\\"

# dossiers pour rechercher des polices
folders = [ dataDir ]

# Charge les polices du répertoire personnalisé
slides.FontsLoader.load_external_fonts(folders)

# Faites un travail et effectuez le rendu de la présentation / des diapositives
with slides.Presentation(path + "DefaultFonts.pptx") as presentation:
    presentation.save("NewFonts_out.pptx", slides.export.SaveFormat.PPTX)

# Vider le cache des polices
slides.FontsLoader.clear_cache()

Obtenir le dossier des polices personnalisées

Aspose.Slides fournit la méthode get_font_folders() pour vous permettre de trouver des dossiers de polices. Cette méthode renvoie les dossiers ajoutés via la méthode LoadExternalFonts et les dossiers de polices système.

Ce code Python vous montre comment utiliser get_font_folders() :

#  Cette ligne affiche les dossiers vérifiés pour les fichiers de polices.
# Ce sont des dossiers ajoutés via la méthode load_external_fonts et des dossiers de polices système.
fontFolders = slides.FontsLoader.get_font_folders()

Spécifiez les polices personnalisées utilisées avec la présentation

Aspose.Slides fournit la propriété document_level_font_sources pour vous permettre de spécifier des polices externes qui seront utilisées avec la présentation.

Ce code Python vous montre comment utiliser la propriété document_level_font_sources :

import aspose.slides as slides

with open(path + "CustomFont1.ttf", "br") as font1:
    memoryFont1 = font1.read()
    with open(path + "CustomFont2.ttf", "br") as font2:
        memoryFont2 = font2.read()

        loadOptions = slides.LoadOptions()
        loadOptions.document_level_font_sources.font_folders =  ["assets\\fonts", "global\\fonts"] 
        loadOptions.document_level_font_sources.memory_fonts = [ memoryFont1, memoryFont2 ]
        with slides.Presentation(path + "DefaultFonts.pptx", loadOptions) as presentation:
            # Travailler avec la présentation
            # CustomFont1, CustomFont2, et les polices des dossiers assets\fonts & global\fonts et leurs sous-dossiers sont disponibles pour la présentation
            print(len(presentation.slides))

Gérer les polices de manière externe

Aspose.Slides fournit la méthode load_external_font(data) pour vous permettre de charger des polices externes à partir de données binaires.

Ce code Python démontre le processus de chargement de polices à partir d’un tableau d’octets :

from aspose.slides import FontsLoader, Presentation

def read_all_bytes(path):
    with open(path, "rb") as in_file:
        bytes = in_file.read()
    return bytes

FontsLoader.load_external_font(read_all_bytes("ARIALN.TTF"))
FontsLoader.load_external_font(read_all_bytes("ARIALNBI.TTF"))
FontsLoader.load_external_font(read_all_bytes("ARIALNI.TTF"))

try:
    with Presentation() as pres:
        # police externe chargée pendant la durée de vie de la présentation
        print("traitement")
finally:
    FontsLoader.clear_cache()