Convertir des diapositives PowerPoint en PNG en Python
Aperçu
Cet article explique comment convertir des présentations PowerPoint en images PNG à l’aide d’Aspose.Slides pour Python via Java. Vous pouvez charger des fichiers PPT, PPTX et ODP, rendre chaque diapositive et l’enregistrer en tant qu’image PNG distincte.
Les exemples montrent également comment contrôler les dimensions de sortie à l’aide de facteurs d’échelle ou d’une largeur et hauteur exactes. Chaque exemple démarre la machine virtuelle Java si nécessaire et libère les ressources de la présentation et de l’image après utilisation.
Convertir PowerPoint en PNG
- Chargez le fichier d’entrée avec la classe Presentation.
- Récupérez les diapositives avec Presentation.getSlides.
- Rendez chaque diapositive avec Slide.getImage.
- Enregistrez chaque image rendue avec ImageFormat.Png, puis libérez ses ressources.
L’exemple Python suivant exporte toutes les diapositives à leur taille par défaut :
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ImageFormat, Presentation
presentation = Presentation("presentation.pptx")
try:
for index, slide in enumerate(presentation.getSlides(), start=1):
slide_image = slide.getImage()
try:
slide_image.save(f"slide_{index}.png", ImageFormat.Png)
finally:
slide_image.dispose()
finally:
presentation.dispose()
Convertir PowerPoint en PNG avec une échelle personnalisée
Passez des facteurs d’échelle horizontaux et verticaux à Slide.getImage pour augmenter ou diminuer les dimensions de sortie. Par exemple, une diapositive de 720 × 540 points rendue avec un facteur d’échelle de 2 sur les deux axes produit une image de 1440 × 1080 pixels.
Utilisez des facteurs d’échelle égaux pour conserver le ratio d’aspect de la diapositive. Des facteurs différents étirent la diapositive horizontalement ou verticalement.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ImageFormat, Presentation
presentation = Presentation("presentation.pptx")
try:
scale_x = 2.0
scale_y = 2.0
for index, slide in enumerate(presentation.getSlides(), start=1):
slide_image = slide.getImage(scale_x, scale_y)
try:
slide_image.save(f"slide_scaled_{index}.png", ImageFormat.Png)
finally:
slide_image.dispose()
finally:
presentation.dispose()
Convertir PowerPoint en PNG avec une taille personnalisée
Pour spécifier des dimensions exactes en pixels, transmettez un objet Java Dimension contenant la largeur et la hauteur souhaitées à Slide.getImage. Choisissez des dimensions avec le même ratio d’aspect que la diapositive source afin d’éviter les distorsions.
L’exemple suivant enregistre chaque diapositive en tant qu’image PNG de 960 × 720 pixels :
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ImageFormat, Presentation
from java.awt import Dimension
presentation = Presentation("presentation.pptx")
try:
image_size = Dimension(960, 720)
for index, slide in enumerate(presentation.getSlides(), start=1):
slide_image = slide.getImage(image_size)
try:
slide_image.save(f"slide_sized_{index}.png", ImageFormat.Png)
finally:
slide_image.dispose()
finally:
presentation.dispose()
FAQ
Puis-je exporter une forme individuelle, comme un graphique ou une image, au lieu de la diapositive entière ?
Oui. Aspose.Slides prend en charge la génération de miniatures pour des formes individuelles, que vous pouvez enregistrer en tant qu’images PNG.
Puis-je convertir des présentations en parallèle sur un serveur ?
Utilisez une instance de présentation distincte pour chaque thread ou processus, et des chemins de sortie uniques pour éviter que les fichiers ne soient écrasés. Ne partagez pas une instance de présentation entre les threads. Voir Multithreading.
Quelles sont les limitations de la version d’évaluation lors de l’exportation en PNG ?
Le mode d’évaluation ajoute un filigrane aux images de sortie et applique d’autres restrictions. Appliquez une licence pour supprimer ces limitations.