问题
I have developed a small code in Python in order to generate PPTX. But I would like also to generate a picture in png or jpeg of this 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 ?
回答1:
You can use the following code :
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")
回答2:
As a detour, you can first convert PPT to PDF, and then convert PDF to images. To convert PPT to PDF, you can use libreoffice:
soffice --headless --convert-to pdf test.pptx
To convert PDF to image, you can use poppler.
pdftoppm -singlefile -f 4 -r 72 -jpeg -jpegopt quality=90 test.pdf test_poppler
This is also a python package pdf2image which is basically a wrapper around poppler. You may also be interested in it.
For more info: see convert ppt slide to image and Converting PDF Pages to Images with Poppler.
来源:https://stackoverflow.com/questions/61815883/python-pptx-export-img-png-jpeg