保存和自动保存PowerPoint OpenXML演示文稿

本文关键字:保存 文稿 OpenXML PowerPoint | 更新日期: 2023-09-27 18:11:36

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

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

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

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

问题2:当打开PresentationDocument时,有一个选项"autosave"似乎默认为"true"。有人能解释一下自动保存是做什么的吗?

我读到的一些东西表明,当PresentationDocument被处置时,这将保存PresentationDocument中的所有内容。这是正确的吗?

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

提前感谢您的回答。

史蒂夫

保存和自动保存PowerPoint OpenXML演示文稿

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

刷新并保存内容、关闭文档并全部释放资源。

这将使您不必在演示文稿中调用save或循环遍历每个单独的幻灯片。

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

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

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