我尝试启用自动导入图片,以防止每次手动播放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
答案 0 :(得分:0)
首先,您必须分析模板中可用的布局(在您的案例中为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上编辑演示文稿母版来了解和设计您的布局,但您必须猜测idx。
一旦知道哪个布局中包含了图片占位符,就可以选择这种布局来创建带有图像的新幻灯片。
类似的东西:
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