저는 python-pptx v0.6.2를 사용하여 파워 포인트를 생성합니다. BytesIO에 존재하는 파워 포인트를 읽은 다음 수정하고 저장합니다. 파일을 성공적으로 다운로드 할 수 있으며 파일에 내용을 쓸 수 있다고 확신합니다. 그러나 파워 포인트를 열면 "Powerpoint가 foo.pptx의 컨텐츠에 문제가 있음을 알았습니다 .Powerpoint가 사전 설정을 복구 할 수 있습니다."라는 오류 메시지가 표시되면 "복구"버튼을 클릭해야합니다. 파워 포인트는 다음과 같이 표시됩니다. "수리"모드. 내 Python 버전은 3.5.2이고 Django 버전은 1.10입니다. 아래 코드는 내 코드입니다 :Django는 python-pptx 라이브러리를 사용하여 생성 된 파워 포인트에 오류 메시지가 있습니다.
with open('foo.pptx', 'rb') as f:
source_stream = BytesIO(f.read())
prs = Presentation(source_stream)
first_slide = prs.slides[0]
title = first_slide.shapes.title
subtitle = first_slide.placeholders[1]
title.text = 'Title'
subtitle.text = "Subtitle"
response = HttpResponse(content_type='application/vnd.ms-powerpoint')
response['Content-Disposition'] = 'attachment; filename="sample.pptx"'
prs.save(source_stream)
ppt = source_stream.getvalue()
source_stream.close()
response.write(ppt)
return response
어떤 도움을 주셔서 감사합니다.
그래서 무엇이 문제입니까? '.pptx'는 기본적으로 이름이 바뀐 .zip 파일입니다. 이 파일의 이름을'.zip'으로 변경하고 안에있는 파일을 수동으로 검사하십시오. – yedpodtrzitko