答案 0 :(得分:0)
我很久以前问过这个问题,但我不记得在哪里并且在 SO 上找不到它。 Scanny 回答了这个问题,所以我在这里转发他的回答(可能很糟糕)。
默认情况下,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 编辑,which you can read about in another post where Scanny was my savior。
请注意,如果您将占位符用于其他任务,将页脚占位符添加到占位符列表中可能会产生不可预见的后果。