Python PPTX读取幻灯片编号(页码)

ida*_*ika 4 python python-pptx

我正在为由 Python-PPTX 生成的幻灯片制作自定义目录。对于已经设置好的幻灯片、页脚和幻灯片编号,我已经可以在生成的 PPTX 中查看它。我相信幻灯片编号已经存在,只需要阅读即可。

我的问题是,是否可以从幻灯片对象或其他地方访问幻灯片编号信息?整体脚本如下所示:

from pptx import Presentation
prs = Presentation()
for x in 'abc':
    s = prs.slides.add_slide(prs.slide_layouts[6])

    if x=='b':
        s.placeholders[0].text = <str: page number of current slide 's'>
Run Code Online (Sandbox Code Playgroud)

sca*_*nny 6

据我所知,幻灯片没有幻灯片编号属性,所有的幻灯片编号都是幻灯片在演示文稿中的位置。出现在页脚中的幻灯片编号是一个sld-num字段元素,当您在 PowerPoint 应用程序中时会显示此位置,但此编号的计算方式相同。

创建自定义幻灯片放映时可能会有一些特殊行为,例如跳过“隐藏”的幻灯片编号,但我还没有尝试过。

对于一般用途,获得它的最简单方法是这样的:

slides = prs.slides
for slide in slides:
    print('slide number %d' % slides.index(slide)+1)
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是您在评论中所说的,但是使用index()onSlides方法可能比以下内容更灵活:

for idx, slide in enumerate(slides):
    print('slide number %d' % idx+1)
Run Code Online (Sandbox Code Playgroud)

或者

def slide_number(slides, slide):
    for idx, s is enumerate(slides):
         if s == slide:
             return idx+1
Run Code Online (Sandbox Code Playgroud)

你需要有两个引用slidesslide对使其发挥作用。