image - python-pptx 将现有 ppt 的每张幻灯片保存为图片

标签 image save-as python-pptx

我使用power point作为网页的用户界面来制作简单的图片。我今天所做的是在 ppt 中创建幻灯片,然后将每张幻灯片保存为图片,然后我的网站会下载图片并显示它。我想尽可能地自动化这个过程,以摆脱这种手动保存。

我查看了 python-pptx 包,但找不到可以将每张幻灯片保存为图片的功能。你能帮我吗?

最佳答案

python-pptx 不是执行此任务的正确工具,因为它根本不与 PowerPoint 交互(无需安装 PowerPoint 版本即可运行)。如果您的系统上安装了 PowerPoint,您可以使用例如comtypes 模块从 python 控制它。如何执行此操作的示例可以在 python-pptx-interface 中找到。模块:

 from comtypes.client import Constants, CreateObject

# ...

def save_pptx_as_png(png_foldername: str, pptx_filename: str, overwrite_folder: bool = False):
    if os.path.isdir(png_foldername) and not overwrite_folder:
        print(f"Folder {png_foldername} already exists. "
              f"Set overwrite_folder=True, if you want to overwrite folder content.")
        return

    powerpoint = CreateObject("Powerpoint.Application")
    pp_constants = Constants(powerpoint)

    pres = powerpoint.Presentations.Open(pptx_filename)
    pres.SaveAs(png_foldername, pp_constants.ppSaveAsPNG)
    pres.close()
    if powerpoint.Presentations.Count == 0:  # only close, when no other Presentations are open!
        powerpoint.quit()

这应该会让您了解如何编写自己的 save_as_png 函数。

或者直接使用python-pptx-interface:

from pptx_tools import utils  # needs python-pptx-interface installed
# you should use full paths, to make sure PowerPoint can handle the paths
png_folder = ...
pptx_file = ... 

utils.save_pptx_as_png(png_folder, pptx_file)  # additional optional parameter overwrite_folder

关于image - python-pptx 将现有 ppt 的每张幻灯片保存为图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49813249/

相关文章:

ios - 如何使图像仅在 iPhone 6/6s 上可见

html - src 和 data-src 属性之间有什么区别?

c# - 如何从 System.Drawing.Imaging.ImageFormat 获取 contentType

cocoa - 非基于文档的应用程序 Cocoa 中的 "Save As"

javascript - 更改弹出窗口的内容类型

python - python-pptx中insert_table的表格高度

python - 在 python-pptx 中更改 PIE 图表的起始角度/第一个切片角度

python - 使用 python pptx 标题占位符中的文本对齐

ios - UIView 动画仅在呈现静态图像时触发

vba - 如何以 PDF 格式输出报告,其中名称由字段中的值组成?