python pptx export img (png, jpeg)

别说谁变了你拦得住时间么 提交于 2020-12-12 18:18:51

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!