对不起我的英文:)
我有一些介绍
using (PresentationDocument presentationDocument = PresentationDocument.Open(@"sample.pptx", false))
{
}
其中包含10张幻灯片。除了秒之外我如何删除所有幻灯片并将此结果(演示文稿)保存在单独的.pptx文件中?
我探索了this样本,但这里展示了如何删除一张幻灯片,我无法解决我的任务。
使用您提供的示例中的方法,您可以删除第一页,然后删除新的第一页之后的任何页面。在代码中:
private void KeepOnlySecondPage(string presentationFilePath, string onlySecondPageFilePath)
{
using (PresentationDocument presentationDocument = PresentationDocument.Open(presentationFilePath, false))
{
if (CountSlides(presentationDocument) > 0)
{
DeleteSlide(presentationDoucment, 0);
while (CountSlides(presentationDocument) > 1)
{
DeleteSlide(presentationDocument,1);
}
presentationDocument.Save(onlySecondPageFilePath);
}
}
}
如果您花费更多时间研究链接到的页面中的示例和PresentationDocument类本身,也许更简单的方法是创建一个仅包含原始第二页的新PresentationDocument。
另外,请编辑您的问题以包含链接页面中的基本部分。链接死了!
@Adam:你可以试试这个
// Delete all slides except Slide at Index i
int countSlide = CountSlides(filePath + i + ".pptx"); // Count number of slides
int newIndex = i; // Slide index that you want to keep it
while (1 < countSlide )
{
// Delete all slides before index i
if (newIndex > 0)
{
DeleteSlide(filePath + i + ".pptx", 0);
countSlide--; // Decrease number of slides after you delete it
newIndex--;
}
// Delete all slides after index i
else if (newIndex < 0)
{
DeleteSlide(filePath + i + ".pptx", 1);
countSlide--; // Decrease number of slides after you delete it
newIndex--;
}
else newIndex--;
}
DeleteSlide()你可以在这里找到MSDN: OpenXML Delete a slide in presentation