【问题标题】:Python pptx: how to find and delete the empty or unpopulated placeholdersPython pptx:如何查找和删除空的或未填充的占位符
【发布时间】:2019-02-27 05:34:23
【问题描述】:

我使用 python-pptx 创建了一个演示文稿。但是,某些幻灯片具有空占位符,默认文本 click to add title/text 如下所示。

所以基本上,有文本Some texts here 的非空占位符,另外两个是空占位符。我怎样才能找到并删除它们?此外,图像也有相同的空占位符。我怎样才能找到它们。谢谢

【问题讨论】:

    标签: python-2.7 python-pptx


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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-22
      • 2016-10-29
      • 2022-01-19
      • 1970-01-01
      • 2016-05-22
      • 1970-01-01
      • 2023-03-21
      相关资源
      最近更新 更多