Хотя я могу сгенерировать презентацию, заполнить текстовые заполнители без проблем и успешно сохранить сгенерированную презентацию, я постоянно получаю сообщение об ошибке при попытке заполнить заполнитель изображения.Я подтвердил, что я работаю с правильным объектом-заполнителем и что он является заполнителем изображения (тип 18).Я написал код для следования примерам из онлайн-документов и на данный момент не могу понять, почему я получаю эту ошибку:
AttributeError: 'LayoutPlaceholder' object has no attribute 'insert_picture'
Это исполняемый раздел кода, который выдаетошибка после выполнения последней строки:
# Bring in a new slide from layout and add to deck
objContentSlide = objPrs.slide_layouts[1]
objPrs.slides.add_slide(objContentSlide)
# Collect the placeholders
objContentShapes = objContentSlide.placeholders
# Populate title placeholder (text)
objContentSlideTitle = list(filter(lambda x: x.name == "slide1Title",objContentShapes))[0]
objContentSlideTitle.text = CNSDETAILSLIDETITLEPREFIX + strMonthName + CNSDETAILSLIDETITLESUFFIX
# Populate forecast placeholder (text)
objContentSlideForecast = list(filter(lambda x: x.name == "slide1Forecast",objContentShapes))[0]
objContentSlideForecast.text = CNSDETAILSLIDEFORECASTPREFIX + strRandomNumber0
# Populate assumptions placeholder (text)
objContentSlideAssumptions = list(filter(lambda x: x.name == "slide1Assumptions",objContentShapes))[0]
objContentSlideAssumptions.text = CNSDETAILSLIDEASSUMPTIONSPREFIX + CNSDETAILSLIDEASSUMPTIONSSTAGE + CNSDETAILSLIDEASSUMPTIONSSUFFIX + strRandomNumber1
# Populate screenshot
objContentSlideScreenshot = list(filter(lambda x: x.name == "slide1Screenshot",objContentShapes))[0]
plcName = objContentSlideScreenshot.name # Returns "slide1Screenshot"
plcType = objContentSlideScreenshot.placeholder_format.type # Returns 18
objContentSlideScreenshot.insert_picture("testShot.png",0,0)
Я обычно не работаю в Python (но полностью наслаждаюсь), поэтому, пожалуйста, дайте мне знать, если есть явная проблема соглашения, о которой я не знаю.