Python-pptx: добавление слайда с примечаниями приводит к сбою PowerPoint 2013
У меня есть скрипт, содержащий что-то похожее на урезанный код ниже. Цель состоит в том, чтобы добавить слайд с примечаниями (и текст) под обычным слайдом. Он отлично работает в системе с установленной PowerPoint 2007.
from pptx import Presentation
prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
blank_slide_layout = prs.slide_layouts[6]
title_slide = prs.slides.add_slide(title_slide_layout)
title = title_slide.shapes.title
title.text = "Title"
blank_slide = prs.slides.add_slide(blank_slide_layout)
notes_slide = blank_slide.notes_slide
notes_slide.notes_text_frame.text = "foo"
prs.save('example.pptx')
К сожалению, при использовании PowerPoint 2013 (с Windows 7): код выполняется без ошибок, но когда я пытаюсь открыть презентацию PowerPoint, я получаю уведомление о том, что "Microsoft PowerPoint перестал работать". Эта ошибка исправлена, когда две строки notes_slide в приведенном выше коде удалены (т.е. в моем коде больше ничего не вызывает проблему).
Кто-нибудь может дать просветление о том, что вызывает это?
1 ответ
Хорошо, у меня есть решение моего собственного вопроса, но я не слишком доволен обходным решением.
Оказывается, что для PowerPoint 2013, если вы хотите добавить слайд с примечаниями к одному или нескольким слайдам, вы должны добавить слайд с примечаниями (без текста) ко всем другим слайдам, иначе PowerPoint 2013 будет аварийно завершать работу.
from pptx import Presentation
prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
blank_slide_layout = prs.slide_layouts[6]
title_slide = prs.slides.add_slide(title_slide_layout)
title = title_slide.shapes.title
title.text = "Title"
notes_slide = title_slide.notes_slide #The only new line of code
blank_slide = prs.slides.add_slide(blank_slide_layout)
notes_slide = blank_slide.notes_slide
notes_slide.notes_text_frame.text = "foo"
prs.save('example.pptx')
У кого-нибудь был другой опыт?