Найти их довольно легко;что-то вроде этого должно сработать:
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.Это может быть опасно, например, если вы попробуете это с формой диаграммы, вы, вероятно, получите ошибку исправления при попытке загрузить презентацию, но в этом случае это достаточно безопасно.