ASP.NET到PowerPoint:添加图像时文件损坏

ASP.NET到PowerPoint:添加图像时文件损坏,asp.net,xml,powerpoint,Asp.net,Xml,Powerpoint,我在将数据导出到PowerPoint时使用了以下示例: 我已修改GenerateSlidesFromDB()方法: 正如您所看到的,我用“testuser”覆盖了占位符,它就像一个符咒。 我需要将图像(作为占位符)添加到此pptx文件 当我这样做(并再次运行代码)时,我会得到一个损坏的pptx文件? 错误消息: PowerPoint删除了不可读的内容 在output.pptx中。你应该复习 此演示文稿用于确定 任何内容都意外更改 或删除 编辑:如果我尝试原始代码(由于我没有Adventurewo

我在将数据导出到PowerPoint时使用了以下示例:

我已修改GenerateSlidesFromDB()方法:

正如您所看到的,我用“testuser”覆盖了占位符,它就像一个符咒。 我需要将图像(作为占位符)添加到此pptx文件

当我这样做(并再次运行代码)时,我会得到一个损坏的pptx文件? 错误消息:

PowerPoint删除了不可读的内容 在output.pptx中。你应该复习 此演示文稿用于确定 任何内容都意外更改 或删除

编辑:如果我尝试原始代码(由于我没有Adventureworks,所以代码稍微修改),我会收到一些其他类型的错误消息:

由于以下原因,此文件可能已损坏或损坏: 第三方XML编辑器有时会创建与Microsoft Office XML规范不兼容的文件。 该文件已被故意损坏,目的是损坏您的计算机或数据。 从未知源打开文件时要小心。 PowerPoint可以尝试从文件中恢复数据,但某些演示文稿数据(如形状、文本和格式)可能会丢失。 执行以下操作之一: 如果要从文件中恢复数据,请单击“是”。
如果不想从文件中恢复数据,请单击“否”。

确定,很抱歉这篇无用的帖子。我的错

解决方案:

 string imgId = "rIdImg" + i;
                ImagePart imagePart = newSlide.AddImagePart(ImagePartType.Jpeg, imgId);
                MemoryStream stream3 = new MemoryStream();
                using (FileStream file = File.Open(@"C:\Users\x\Desktop\Test.jpg", FileMode.Open))
                {
                    byte[] buffer = new byte[file.Length];
                    file.Read(buffer, 0, (int)file.Length);
                    stream3.Write(buffer, 0, buffer.Length);
                    imagePart.FeedData(new MemoryStream(buffer));
                }
                SwapPhoto(newSlide, imgId);

很好,你找到了解决办法!您可以接受您自己的答案,并在旁边打上空心复选标记。
 string imgId = "rIdImg" + i;
                ImagePart imagePart = newSlide.AddImagePart(ImagePartType.Jpeg, imgId);
                MemoryStream stream3 = new MemoryStream();
                using (FileStream file = File.Open(@"C:\Users\x\Desktop\Test.jpg", FileMode.Open))
                {
                    byte[] buffer = new byte[file.Length];
                    file.Read(buffer, 0, (int)file.Length);
                    stream3.Write(buffer, 0, buffer.Length);
                    imagePart.FeedData(new MemoryStream(buffer));
                }
                SwapPhoto(newSlide, imgId);