Python pptx: как найти и удалить пустые или незаполненные заполнители - PullRequest
0 голосов
/ 27 февраля 2019

Я создал презентацию, используя python-pptx.Однако на некоторых слайдах есть пустые заполнители с текстом по умолчанию click to add title/text, который выглядит так, как показано ниже.enter image description here

Таким образом, в основном, есть непустой заполнитель с текстом Some texts here, а два других являются пустыми заполнителями.Как я могу найти и удалить их?Также есть те же пустые заполнители для изображений.Как я могу их найти?Спасибо

1 Ответ

0 голосов
/ 27 февраля 2019

Найти их довольно легко;что-то вроде этого должно сработать:

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 представляет собой объект lxml etree._Element, представляющий фактический элемент XML формы (элемент заполнителя <p:sp>в этом случае)..getparent() и .remove() являются методами в etree._Element, и их вызов напрямую управляет базовым XML.Это может быть опасно, например, если вы попробуете это с формой диаграммы, вы, вероятно, получите ошибку исправления при попытке загрузить презентацию, но в этом случае это достаточно безопасно.

...