尝试获取占位符详细信息时如何访问幻灯片的形状元素?这是使用 Python PPTX 完成的

How to access the shape element of slides when trying to get placeholder details? This is done using Python PPTX

我正在编写代码来找出现有 PowerPoint 演示文稿中存在的占位符数量。但出于某种原因,我无法加载边值来塑造。我在这里遗漏了一些东西。有人可以指导我吗?

我阅读了文档,发现大多数示例都添加了一行 slide=prs.slides.add_slide(prs.slide_layouts[8]) 我不想将我现有的幻灯片布局更改为 slide_layouts style[8]

from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.util import Inches
from pptx.enum.text import MSO_ANCHOR, MSO_AUTO_SIZE
prs = Presentation('test1.pptx')
slide = prs.slide_layouts(prs)
for shape in slide.placeholders:
print('%d %s' % (shape.placeholder_format.idx, shape.name))

首先,您需要区分幻灯片版式和幻灯片本身。您想要获取有关布局或当前现有幻灯片的信息吗?

对于当前存在的幻灯片,您可以从 slides 对象访问幻灯片。要获取每张幻灯片的所有占位符,这将起作用:

for slide in prs.slides:
    for shape in slide.placeholders:
        print('%d %d %s' % (prs.slides.index(slide), shape.placeholder_format.idx, shape.name))

如果你想获得布局的占位符(从母版),你需要访问 slide_layouts 对象。

for slide in prs.slide_layouts:
    for shape in slide.placeholders:
        print('%d %d %s' % (prs.slide_layouts.index(slide), shape.placeholder_format.idx, shape.name))