python pptx 导出 img(png、jpeg)

python pptx export img (png, jpeg)

我在 Python 中开发了一个小代码来生成 PPTX。但我还想生成这张幻灯片的 png 或 jpeg 图片。

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')

有没有办法将 PPTX 文件(仅包括一张幻灯片)转换为 PNG 或 JPEG 图片?

您可以使用以下代码:

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

通过这一行,您可以更改要导出的幻灯片的编号(例如,下面的幻灯片编号为 6):

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

绕个弯路,你可以先把PPT转成PDF,再把PDF转成图片。 PPT转PDF,可以使用libreoffice:

soffice --headless --convert-to pdf test.pptx

要将 PDF 转换为图像,您可以使用 poppler

pdftoppm -singlefile -f 4 -r 72 -jpeg -jpegopt quality=90 test.pdf test_poppler

这也是一个 python 包 pdf2image,它基本上是 poppler 的包装器。您可能也对此感兴趣。

有关详细信息:请参阅 convert ppt slide to image and Converting PDF Pages to Images with Poppler