保存和自动保存PowerPoint OpenXML PresentationDocuments

时间:2011-10-19 11:14:57

标签: c# powerpoint openxml openxml-sdk powerpoint-2007

我正在寻找有关保存OpenXML文档的建议,特别是PresentationDocument。

在我的场景中,我直接从磁盘打开PowerPoint .pptx演示文稿,该演示文稿充当模板。然后我从各种其他PowerPoint演示文稿中添加(复制)幻灯片。对于每个单独的源演示文稿,我还添加了MasterSlideParts和SlideLayoutParts。

问题1: 当演示文稿需要保存时,我是否可以发出一个命令来保存对PresentationDocument的所有更改?或者我是否必须手动保存新项目或已更改的项目,例如:

        presentationDocument.PresentationPart.Presentation.Save();

        foreach (var slideMasterPart in presentationDocument.PresentationPart.SlideMasterParts)
        {
            slideMasterPart.SlideMaster.Save();
        }

问题2:打开PresentationDocument时,有一个“自动保存”选项,似乎默认为“true”。任何人都可以准确解释自动保存的作用吗?

我读到的东西表明,当处理PresentationDocument时,这会保存PresentationDocument中的所有内容。这是对的吗?

如果是这样,我将需要设置autosave = false,因为我需要控制保存自己,以便能够测试表示构建逻辑。

提前感谢您的任何答案。

史蒂夫

1 个答案:

答案 0 :(得分:2)

问题1:如果您使用流来打开文件并以这种方式进行修改,则无需显式调用其中任何一个保存调用。您只需要在presentationDocument变量上调用Dispose()方法即可。处理文件说明

  

刷新并保存内容,关闭文档并释放所有内容   资源。

这将使您不必在演示文稿上调用保存或循环浏览每张幻灯片。

问题2: autosave的文档说明如下:

  

获取指示是否应保存部件的标志   设置。

这会让我相信,如果你想在调用Dispose()方法时保存所有部分,你会希望将这个值设置为true。否则,您的更改可能无法保存。