Ouvrir des présentations en Python
Introduction
Aspose.Slides for Python via .NET peut charger des présentations PowerPoint et OpenDocument à partir de fichiers et de flux. Après le chargement d’une présentation, vous pouvez inspecter sa structure, modifier les diapositives, gérer les ressources et l’enregistrer au format d’origine ou dans un autre format pris en charge.
Le comportement de chargement peut être personnalisé via la classe LoadOptions. Par exemple, vous pouvez fournir un mot de passe d’ouverture, conserver de grands objets binaires hors de la mémoire ou omettre les données binaires incorporées.
Ouvrir des présentations
Après avoir chargé un fichier ou un flux, vous pouvez déterminer le format d’origine de la présentation pour choisir comment votre application le traite.
Pour ouvrir une présentation existante, transmettez son chemin de fichier au constructeur Presentation. Utilisez une instruction with afin que les poignées de fichier, les données temporaires et les autres ressources soient libérées rapidement.
L’exemple Python suivant montre comment ouvrir une présentation et obtenir le nombre de diapositives :
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
print("Slide count: " + str(len(presentation.slides)))
Ouvrir des présentations protégées par mot de passe
Un mot de passe d’ouverture chiffre le contenu de la présentation. Pour charger l’intégralité de la présentation, affectez le mot de passe correct à LoadOptions.password et transmettez les options au constructeur Presentation. Le chargement échoue si le mot de passe est absent ou incorrect.
import aspose.slides as slides
load_options = slides.LoadOptions()
load_options.password = "open_password"
with slides.Presentation("encrypted-presentation.pptx", load_options) as presentation:
print("Slide count: " + str(len(presentation.slides)))
Pour la détection, la validation et les flux de travail de chiffrement des mots de passe, consultez Password-Protect Presentations. Si une présentation chiffrée a été enregistrée volontairement avec des propriétés de document publiques, ces propriétés peuvent être lues sans mot de passe ; voir Manage Presentation Properties.
Ouvrir de grandes présentations
LoadOptions.blob_management_options contrôle la façon dont Aspose.Slides gère les objets binaires volumineux tels que les images, l’audio et la vidéo. Vous pouvez garder le fichier source verrouillé, autoriser les fichiers temporaires et limiter la quantité de données BLOB conservées en mémoire.
Ce code Python montre comment charger une grande présentation (par exemple, 2 Go) :
import aspose.slides as slides
file_path = "large-presentation.pptx"
load_options = slides.LoadOptions()
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
with slides.Presentation(file_path, load_options) as presentation:
presentation.slides[0].name = "Large presentation"
presentation.save("large-presentation-copy.pptx", slides.export.SaveFormat.PPTX)
Note
Avec PresentationLockingBehavior.KEEP_LOCKED, le fichier source reste verrouillé jusqu’à ce que l’objet Presentation soit libéré. Ne déplacez pas, n’écrasez pas et ne supprimez pas le fichier source tant que cet objet est en vie.
Aspose.Slides peut copier le contenu d’un flux d’entrée lors du chargement. Pour les grandes présentations, un chemin de fichier est donc généralement plus efficace qu’un flux. Consultez Manage BLOBs pour des options supplémentaires de stockage et de gestion de la mémoire.
Charger des présentations sans objets binaires incorporés
Une présentation peut contenir des données binaires incorporées qu’une application n’a pas besoin ou ne veut pas conserver. Les exemples incluent :
- Projets VBA, disponibles via Presentation.vba_project;
- données OLE incorporées, disponibles via OleEmbeddedDataInfo.embedded_file_data;
- données de contrôle ActiveX, disponibles via Control.active_x_control_binary.
Définissez LoadOptions.delete_embedded_binary_objects sur True pour supprimer ces données binaires lors du chargement. Enregistrez la présentation chargée pour conserver le résultat désinfecté.
Cette option réduit l’exposition à des charges utiles incorporées indésirables, mais ce n’est pas un système complet de détection de logiciels malveillants ou de désinfection de contenu.
import aspose.slides as slides
load_options = slides.LoadOptions()
load_options.delete_embedded_binary_objects = True
with slides.Presentation("presentation-with-embedded-data.pptx", load_options) as presentation:
presentation.save("presentation-without-embedded-data.pptx", slides.export.SaveFormat.PPTX)
FAQ
Comment savoir si un fichier est corrompu et ne peut pas être ouvert ?
Aspose.Slides déclenche une exception d’analyse ou de format lors du chargement. Gérez cet échec séparément d’une erreur de mot de passe incorrect afin que l’application puisse rapporter la cause avec précision.
Que se passe-t-il si les polices requises sont manquantes ?
La présentation peut toujours se charger, mais le rendu et l’exportation peuvent substituer les polices. Vous pouvez configure font substitution ou provide custom fonts pour rendre la sortie plus prévisible.
Le chargement d’une présentation charge‑t‑il également ses médias incorporés ?
L’audio et la vidéo incorporés deviennent accessibles via le modèle d’objet de la présentation. Les ressources externes sont résolues selon le comportement de chargement de ressources par défaut et peuvent être indisponibles si leurs emplacements ne sont pas accessibles.