3

我正在寻找一些关于保存 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 时,有一个“自动保存”选项,似乎默认为“真”。谁能解释一下自动保存的作用?

我读到的东西表明,当 PresentationDocument 被处理时,这会将所有内容保存在 PresentationDocument 中。它是否正确?

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

提前感谢您的任何答案。

史蒂夫

4

1 回答 1

2

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

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

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

问题 2: 的文档autosave说明以下内容:

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

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

于 2011-10-20T13:59:54.807 回答