4

我可以使用 python-pptx 编辑现有演示文稿的页眉和页脚吗?我要设置的值如附图所示。谢谢。

Powerpoint 页眉和页脚

4

1 回答 1

0

我很久以前就问过这个问题,但我不记得在哪里,也无法在 SO 上找到它。斯堪尼回答了这个问题,所以我在这里转达他的回答(可能很糟糕)。

默认情况下,Python-pptx 在列出幻灯片占位符时不包含页脚或页码占位符。通常的做法是在需要时建议插入文本框,但这在处理多个模板或布局时没有用。

您需要在某处添加的第一件事是一个补丁,以便包含占位符:

def footer_patch(self):
    for ph in self.placeholders:
        yield ph

SlideLayout.iter_cloneable_placeholders = footer_patch

然后,您应该能够通过简单的方法从占位符中获取页脚:

footer_copy = "Hi, it's me, the footer"
elif "FOOTER" in str(shape.placeholder_format.type):
    footer = slide.placeholders[shape.placeholder_format.idx]
    footer_text_frame = footer.text_frame
    insert_text(footer_copy, footer_text_frame)

上面是旧代码,可能是如何做到这一点的一个糟糕的例子,但我希望它能给一个起点。类似的方法应该适用于您在此处列出的其他值。某些值(例如页码)可能需要额外的 XML 编辑,您可以在 Scanny 是我的救星的另一篇文章中了解这些内容

请注意,如果您将占位符用于其他任务,将页脚占位符添加到占位符列表中可能会产生无法预料的后果。

于 2021-08-10T12:47:05.410 回答