4

我尝试启用自动导入图片,以防止每次手动添加 100 张图片。我似乎无法访问图片的占位符并用新图片替换它们。一些正确方向的指南会很有帮助。

我开始的代码:

import pptx
import pptx.util

from pptx import Presentation

prs = Presentation('prepare_2.pptx')

picture_runs = []


for slide in prs.slides:
    for shape in slide.shapes:
        if shape.shape_type == 13:

            slide.get.image('tree.jpg')
          >Picture_runs.append((shape.name,shape.shape_type,shape.id,shape.image))

找到我获得的信息:http: //python-pptx.readthedocs.io/en/latest/user/quickstart.html

幻灯片布局

4

1 回答 1

1

首先,您必须分析模板中可用的布局(prepare_2.pptx在您的情况下)。

为此,只需编写一个脚本即可获取演示文稿中的所有布局并列出所有形状和占位符。像这样的东西:

prs = Presentation('template.pptx')
for idx, slide_layout in enumerate(prs.slide_layouts):
    slide = prs.add_slide(slide_layout)
    for shape in slide.placeholders:
        print idx, shape.placeholder_format.idx, shape.name

如果您按原样使用此脚本,如果 shape 不是占位符,您可能必须管理异常。您还可以通过在 Powerpoint 上编辑演示文稿母版来了解和设计您的布局,但您必须猜测 idxs。

一旦您知道哪个布局中有图片占位符,您可以选择这种布局来创建带有图像的新幻灯片。

像这样的东西:

slide = prs.slides.add_slide(THE_IDX_OF_YOUR_LAYOUT_WITH_PICTURE)
placeholder = slide.placeholders[THE_IDX_OF_YOUR_PICTURE_PLACEHOLDER]
placeholder.insert_picture(picture)

我建议您阅读这篇绝对很棒的文章:http: //pbpython.com/creating-powerpoint.html

于 2017-07-18T10:04:11.993 回答