我使用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/