【问题标题】:python-pptx save each slide of an existing ppt as picturepython-pptx 将现有ppt的每张幻灯片保存为图片
【发布时间】:2018-04-13 09:08:02
【问题描述】:

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

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

【问题讨论】:

    标签: image save-as python-pptx


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 2013-04-09
      • 2022-09-30
      • 2023-02-10
      相关资源
      最近更新 更多