pythonpython-pptx

How to export pptx to image (png, jpeg) in Python?


I have developed a small code in Python to generate a PPTX file. But I would like also to generate a picture in PNG or JPEG of the slide.

from pptx import Presentation
from pptx.util import Inches

img_path = 'monty-truth.png'

prs = Presentation()
blank_slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(blank_slide_layout)

left = top = Inches(1)
pic = slide.shapes.add_picture(img_path, left, top)

left = Inches(5)
height = Inches(5.5)
pic = slide.shapes.add_picture(img_path, left, top, height=height)

prs.save('test.pptx')

Is there a way to transform a PPTX file (including just one slide) into a PNG or JPEG picture ?


Solution

  • On Windows once you have installed pywin32

    pip install pywin32

    You can then use the following code :

    import win32com.client
    Application = win32com.client.Dispatch("PowerPoint.Application")
    Presentation = Application.Presentations.Open(r"your_path")
    Presentation.Slides[0].Export(r"the_new_path-file.jpg", "JPG")
    Application.Quit()
    Presentation =  None
    Application = None
    

    With this line, you can change the number of the slide you want to export (for example below, for slide number 6) :

    Presentation.Slides[5].Export(r"the_new_path-file.jpg", "JPG")