Ошибка атрибута: объект ‘SlidePlaceholder’ не имеет атрибута ‘insert_picture’

#python-pptx

#python-pptx

Вопрос:

Любая помощь в отладке? Я просто хочу загрузить изображения из папки, поместить их в заполнители и сохранить pptx под новым именем.

Я получаю эту ошибку из своего кода:

Ошибка атрибута: объект ‘SlidePlaceholder’ не имеет атрибута ‘insert_picture’

 import pptx
import pptx.util
import glob
import scipy.misc
       
prs_exists = pptx.Presentation("NEW_SITE_SSVT_REPORT_PYTHON.pptx")
src = "C:\Work\Test\*.*"
    
files = glob.glob(src)
index = 0
for slide in prs_exists.slides:
    for pHolder in slide.shapes: #placeholders:
        if pHolder.is_placeholder:
            pHolder.insert_picture(files[index])
            index = index   1
prs_exists.save("test.pptx")```
 

Ответ №1:

Метод имеет только заполнитель изображения .insert_picture() . В частности, общий заполнитель «object», наиболее распространенный в качестве заполнителя тела, не имеет этого метода. Поэтому вам придется изменить целевые заполнители в соответствующих макетах слайдов, NEW_SITE_SSVT_REPORT_PYTHON.pptx чтобы они были заполнителями изображений. Это легко сделать вручную, используя PowerPoint.

Комментарии:

1. Спасибо Scanny. Я это сделал. Как изменить ссылку-заполнитель на изображение

2. Добро пожаловать в StackOverflow @abandoh. Не забудьте принять ответ, который разрешает ваш вопрос. Вот как вы говорите спасибо респонденту и строите свой рейтинг идентичности SO. В PowerPoint тип заполнителя выбирается в меню Вставить заполнитель. Я не думаю, что вы можете преобразовать заполнитель в другой тип; вам нужно удалить старый и добавить новый.

3. Я снова просмотрел код. Я изменил код, чтобы проверить, имеет ли заполнитель тип picture