我使用python-pptx v0.6.2生成powerpoint。我读了一个存在的BytesIO的Powerpoint,然后做一些修改并保存。我可以成功下载文件,并且我确定内容可以写入文件。但是当我打开Powerpoint的时候,它会弹出一个错误信息“Powerpoint发现foo.pptx中的内容有问题,Powerpoint可以尝试修复这个提示”,然后我必须点击“修复”按钮,powerpoint会显示为“修复”模式。我的Python版本是3.5.2,Django版本是1.10。以下是我的代码:Django使用python-pptx库生成的powerpoint有错误信息
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
任何帮助表示感谢,提前致谢!
2017-02-09 Leon Chen
那么问题是什么? '.pptx'基本上是一个重命名的'.zip'文件。尝试将其重命名为'.zip'并手动检查里面的内容。 –