2017-12-13 1 views
1

아래 줄무늬 코드와 비슷한 스크립트가 있습니다. 그 목적은 일반 슬라이드 아래에 노트 슬라이드 (및 텍스트)를 추가하는 것입니다. PowerPoint 2007이 설치된 시스템에서 완벽하게 작동합니다. (윈도우 7) 파워 포인트 2013을 사용하는 경우 Python-pptx : 메모 슬라이드를 추가하면 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" 

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 프레젠테이션을 열려고 할 때 나는 '마이크로 소프트 파워 포인트의 작동이 중지되었습니다'고 통지를받습니다. 이 오류는 위 코드의 두 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') 

다른 경험을 가진 사람이 있습니까?

+0

이것은 매우 흥미로운 동작입니다. @cthomas. PowerPoint 2013 및 이후 버전에서 모든 슬라이드에 슬라이드 노트가 있어야한다는 것을 알 수 있습니까? 그것은 약간 이상한 것처럼 보입니다. 왜냐하면 2007 년에 만들어지는 .pptx 파일들이 각 슬라이드마다 필요하지 않기 때문입니다. 그리고 그것들을 잘로드하는 것처럼 보입니다. – scanny

+0

안녕하세요 scanny, 웹 어디서나 보지 못했습니다. 코드가 작동 할 때까지 코드를 수정했습니다. 기본적으로 노트 슬라이드가 전혀 없거나 모든 슬라이드에 노트 슬라이드가있는 경우에만 작업 .pptx 파일을 만들 수있었습니다. 그렇지 않으면 .pptx 파일로 인해 PowerPoint 2013 충돌이 발생합니다. 실제로, PowerPoint 2007의 모든 슬라이드에 슬라이드를 추가하지 않는 것이 좋습니다. PowerPoint 2010을 시도하지 않았습니다. 문제를 해결하는 데 도움이 될만한 정보가 더 있습니까? – cthomas

+0

아마도 "GitHub repo : https://github.com/scanny/python-pptx/issues"에서 문제를 열어 볼 수 있습니다. 아마도 "PowerPoint 2010 Notes Page behavior"와 같을 것입니다. 그러면 우리는 그것에 대해 더 이상 대화 할 수 있습니다. 3 개의 빈 슬라이드를 사용하여 새로운 2010 pptx를 만들고 슬라이드 2에 노트를 추가하고 패키지에 notesSlide 오브젝트 등이 포함되어 있는지 확인하는 등 몇 가지 실험이 순서대로 이루어 졌다고 생각합니다. 특정 문제를 빠르게 좁히기를 기대합니다. . – scanny

관련 문제