我可以使用 python-pptx 编辑现有演示文稿的页眉和页脚吗?我要设置的值如附图所示。谢谢。
问问题
1048 次
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 回答