如何使用VSTO保存单个powerpoint幻灯片文件

时间:2011-04-23 20:11:18

标签: vsto powerpoint

我想使用VSTO将Slide对象保存到文件中。 不幸的是,幻灯片对象是不可序列化的,因此我无法使用标准方法将对象保存到文件中。我尝试使用xmlserializer,但没有结果我得到错误抱怨Microsoft.Office.Interop.PowerPoint.Slide对象无法序列化。

2 个答案:

答案 0 :(得分:1)

我不确定这是否是最好的方法,但它应该起作用=)

var temporaryPresentation = Globals.ThisAddIn.Application.Presentations.Add(Core.MsoTriState.msoFalse);
var targetSlide = temporaryPresentation.Slides.Add(1, Interop.PpSlideLayout.ppLayoutBlank);

foreach (Interop.Shape shape in sourceSlide.Shapes)
{
    try
    {
        shape.Copy();
        targetSlide.Shapes.Paste();
    }
    catch (Exception) { };
 }

 temporaryPresentation.SaveAs(fileName, Interop.PpSaveAsFileType.ppSaveAsOpenXMLPresentation, Core.MsoTriState.msoFalse);
 temporaryPresentation.Close();

答案 1 :(得分:0)

为什么不保存一个只包含特定幻灯片的pptx文件?