我已经使用python-pptx创建了一个演示文稿。但是,某些幻灯片的空白占位符为空,默认文本为click to add title/text
,如下所示。
因此,基本上,存在带有文本Some texts here
的非空占位符,另外两个是空占位符。如何找到和删除它们?另外,图像有相同的空占位符。我怎么也可以找到它们。谢谢
答案 0 :(得分:1)
找到它们很容易;大概像这样的东西应该可以解决问题:
for placeholder in slide.shapes.placeholders:
if placeholder.has_text_frame and placeholder.text_frame.text == "":
print("found one %s" % placeholder)
删除它比较困难,因为没有直接的API支持删除形状。但是,在这种简单的文本占位符情况下,这应该可以工作:
sp = placeholder._sp
sp.getparent().remove(sp)
._sp
属性是表示实际形状XML元素(在这种情况下为占位符lxml
元素)的etree._Element
<p:sp>
对象。 .getparent()
和.remove()
是etree._Element
上的方法,调用这些方法可以直接操作基础XML。这可能很危险,例如,如果您尝试使用图表形状进行此操作,则在尝试加载演示文稿时可能会收到修复错误,但是在这种情况下,它足够安全。