保存 Aspose.Slides.Presentation 会阻止文件被打开

问题描述 投票:0回答:2

我正在尝试使用 Aspose.Slides 修改演示文稿文件。

var fileMemoryStream = new MemoryStream();
await fileMemoryStream.WriteAsync(file.FileData, 0, file.FileData.Length);

Presentation pres = new Presentation(fileMemoryStream);
IDocumentProperties pptProperties = pres.DocumentProperties;
pptProperties.Title = "test";

pres.Save(fileMemoryStream, Aspose.Slides.Export.SaveFormat.Pptx);

fileMemoryStream.Position = 0;
fileData = fileMemoryStream.ToArray();
var contentType = fileProperties.MimeTypes.ContainsKey(file.Extension) ? fileProperties.MimeTypes[file.Extension]: "application"+file.Extension.Replace(".", "/");
var fileConvert = File(fileData, contentType, exemplarFile.DownloadName + file.Extension);

如果我注释掉 pres.Save 行,该文件就可以工作。如果不这样做,它就不会打开,并且我会看到下面的消息。

“Powerpoint 发现 path.pptx 中的内容存在问题。Powerpoint 可以尝试修复演示文稿。”

如果我注释掉 pptProperties.Title = "test";,它不起作用。一开始将 fileMemoryStream 设置为零是行不通的。我肯定错过了 Aspose 进程或内存流进程中的一个步骤。有什么想法吗?

注意:被测试的文件是pptx文件且Mimetype正确

application/vnd.openxmlformats-officedocument.presentationml.presentation

aspose
2个回答
0
投票

我不确定发生了什么,但是将 pres 保存到新的 MemoryStream 而不是当前的 MemoryStream 是有效的。

如果有人知道为什么会这样,请随意发帖,但这就是解决这个问题的方法。


0
投票

可以分享示例代码吗,我也面临同样的问题

© www.soinside.com 2019 - 2024. All rights reserved.