Python pptx:如何查找和删除空的或未填充的占位符

时间:2019-02-27 05:34:24

标签: python-2.7 python-pptx

我已经使用python-pptx创建了一个演示文稿。但是,某些幻灯片的空白占位符为空,默认文本为click to add title/text,如下所示。 enter image description here

因此,基本上,存在带有文本Some texts here的非空占位符,另外两个是空占位符。如何找到和删除它们?另外,图像有相同的空占位符。我怎么也可以找到它们。谢谢

1 个答案:

答案 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。这可能很危险,例如,如果您尝试使用图表形状进行此操作,则在尝试加载演示文稿时可能会收到修复错误,但是在这种情况下,它足够安全。