Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to delete unpopulated placeholder items using python-pptx

This is very simple, but I cannot find the actual method anywhere in the documentation or otherwise.

I am using the python-pptx module and all I need to do is delete a single placeholder item, an empty text box, on some slides (without having to create a completely new layout just for these slides) - the closest thing to an answer is here: http://python-pptx.readthedocs.io/en/latest/user/placeholders-understanding.html under Unpopulated vs. populated but it still does not say how to actually delete/remove the placeholder.

I've tried all the obvious methods .delete(), .remove(), etc.

like image 892
Jacristi Avatar asked Sep 20 '16 20:09

Jacristi


1 Answers

There is no API support for this, but if you delete the text box shape element, that should do the trick. It would be something like this:

textbox = shapes[textbox_idx]
sp = textbox.element
sp.getparent().remove(sp)

Using the textbox variable/reference after this operation is not likely to go well. But otherwise, I expect this will do the trick.

like image 183
scanny Avatar answered Sep 27 '22 20:09

scanny