Ouvrir des présentations en Python

Aperçu

En plus de créer des présentations PowerPoint à partir de zéro, Aspose.Slides vous permet également d’ouvrir des présentations existantes. Après avoir chargé une présentation, vous pouvez récupérer des informations à son sujet, modifier le contenu des diapositives, ajouter de nouvelles diapositives, supprimer celles existantes, et plus encore.

Ouvrir des présentations

Pour ouvrir une présentation existante, créez une instance de la classe Presentation et passez le chemin du fichier à son constructeur.

L’exemple Python suivant montre comment ouvrir une présentation et obtenir le nombre de diapositives :

import aspose.slides as slides

# Instanciez la classe Presentation et transmettez un chemin de fichier à son constructeur.
with slides.Presentation("sample.pptx") as presentation:
    # Affichez le nombre total de diapositives dans la présentation.
    print(presentation.slides.length)

Ouvrir des présentations protégées par mot de passe

Lorsque vous devez ouvrir une présentation protégée par mot de passe, transmettez le mot de passe via la propriété password de la classe LoadOptions pour la déchiffrer et la charger. Le code Python suivant illustre cette opération :

import aspose.slides as slides

load_options = slides.LoadOptions()
load_options.password = "YOUR_PASSWORD"

with slides.Presentation("sample.pptx", load_options) as presentation:
    # Effectuez des opérations sur la présentation déchiffrée.

Ouvrir de grandes présentations

Aspose.Slides propose des options—en particulier la propriété blob_management_options de la classe LoadOptions—pour vous aider à charger de grandes présentations.

Ce code Python montre comment charger une grande présentation (par exemple, 2 Go) :

import aspose.slides as slides
import os

file_path = "LargePresentation.pptx"

load_options = slides.LoadOptions()
# Choose the KeepLocked behavior—the presentation file will remain locked for the lifetime of 
# l'instance Presentation, mais il n'a pas besoin d'être chargé en mémoire ou copié dans un fichier temporaire.
load_options.blob_management_options.presentation_locking_behavior = slides.PresentationLockingBehavior.KEEP_LOCKED
load_options.blob_management_options.is_temporary_files_allowed = True
load_options.blob_management_options.max_blobs_bytes_in_memory = 10 * 1024 * 1024  # 10 Mo

with slides.Presentation(file_path, load_options) as presentation:
    # La grande présentation a été chargée et peut être utilisée, tandis que la consommation de mémoire reste faible.

    # Apportez des modifications à la présentation.
    presentation.slides[0].name = "Large presentation"

    # Enregistrez la présentation dans un autre fichier. La consommation de mémoire reste faible pendant cette opération.
    presentation.save("LargePresentation-copy.pptx", slides.export.SaveFormat.PPTX)

    # Ne faites pas cela ! Une exception d'E/S sera levée parce que le fichier est verrouillé jusqu'à ce que l'objet présentation soit libéré.
    os.remove(file_path)

# Vous pouvez le faire ici. Le fichier source n'est plus verrouillé par l'objet présentation.
os.remove(file_path)

Contrôler les ressources externes

Aspose.Slides fournit la classe IResourceLoadingCallback qui vous permet de gérer les ressources externes. Le code Python suivant montre comment utiliser la classe IResourceLoadingCallback :

# [TODO[not_supported_yet]: implémentation python des interfaces .NET]

Charger des présentations sans objets binaires incorporés

Une présentation PowerPoint peut contenir les types d’objets binaires incorporés suivants :

En utilisant la propriété LoadOptions.delete_embedded_binary_objects, vous pouvez charger une présentation sans aucun objet binaire incorporé.

Cette propriété est utile pour supprimer du contenu binaire potentiellement malveillant. Le code Python suivant montre comment charger une présentation sans aucun contenu binaire incorporé :

import aspose.slides as slides

load_options = slides.LoadOptions()
load_options.delete_embedded_binary_objects = True

with slides.Presentation("malware.ppt", load_options) as presentation:
    # Effectuer des opérations sur la présentation.

FAQ

Comment savoir si un fichier est corrompu et ne peut pas être ouvert ?

Vous recevrez une exception de validation du format ou de l’analyse lors du chargement. Ces erreurs mentionnent souvent une structure ZIP invalide ou des enregistrements PowerPoint endommagés.

Que se passe-t-il si des polices requises sont manquantes à l’ouverture ?

Le fichier s’ouvrira, mais le rendering/export ultérieur pourra substituer les polices. Configurez les substitutions de polices ou ajoutez les polices requises à l’environnement d’exécution.

Qu’en est-il des médias incorporés (vidéo/audio) à l’ouverture ?

Ils deviennent disponibles en tant que ressources de la présentation. Si les médias sont référencés via des chemins externes, assurez-vous que ces chemins sont accessibles dans votre environnement ; sinon le rendering/export pourra ignorer les médias.