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

时间:2017-06-17 03:07:06

标签: 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'>

3 个答案:

答案 0 :(得分:1)

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

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

出于一般目的,获得它的最简单方法是:

slides = prs.slides
for slide in slides:
    print('slide number %d' % slides.index(slide)+1)

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

for idx, slide in enumerate(slides):
    print('slide number %d' % idx+1)

def slide_number(slides, slide):
    for idx, s is enumerate(slides):
         if s == slide:
             return idx+1

您需要同时引用slidesslide才能使其正常工作。

答案 1 :(得分:1)

您可以使用index()方法访问幻灯片编号。

slide_id = prs.slides.index(slide)

要访问带有幻灯片ID的幻灯片,可以使用get()方法。

slide = prs.slides.get(slide_id)

请参考以下链接以获取更多信息:

https://python-pptx.readthedocs.io/en/latest/api/slides.html

答案 2 :(得分:-1)

您可以计算每张幻灯片的数量和总数。

首先,获取每个幻灯片编号。

for slide in prs.slides:
    slide_cnt = slide_cnt + 1
    print(slide_cnt)

第二,获取幻灯片总数。

from pptx import Presentation
prs = Presentation("path/example.pptx")
print(len(prs.slides))
相关问题