对不起我的英语:)
我有一些演讲
using (PresentationDocument presentationDocument = PresentationDocument.Open(@"sample.pptx", false))
{
}
包含10张幻灯片。如何删除除秒以外的所有幻灯片并将此结果(演示文稿)保存在单独的.pptx文件中?
我探讨了this示例,但是这里展示了如何删除一张幻灯片,我无法解决我的任务。
答案 0 :(得分:1)
使用您提供的示例中的方法,您可以删除第一页,然后删除新的第一页之后的任何页面。在代码中:
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。
此外,请编辑您的问题以包含链接页面中的基本部分。链接死!
答案 1 :(得分:0)
@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