0

我正在使用GemBox.Presentation,我需要合并多个 PPTX 文件,将它们组合成一个 PPTX 文件。

我试过这个:

PresentationDocument presentation1 = PresentationDocument.Load("PowerPoint1.pptx");
PresentationDocument presentation2 = PresentationDocument.Load("PowerPoint2.pptx");

foreach (Slide slide2 in presentation2.Slides)
    presentation1.Slides.Add(slide2);

但我收到以下错误:

项目已包含在某个集合中。首先从该集合中删除它。
参数名称:项目

如何将多个演示文稿合并为一个演示文稿?

4

1 回答 1

1

使用其中一种AddCopy方法代替Add.
换句话说,试试这个:

var presentation1 = PresentationDocument.Load("PowerPoint1.pptx");
var presentation2 = PresentationDocument.Load("PowerPoint2.pptx");

// Merge "PowerPoint2.pptx" file into "PowerPoint1.pptx" file.
var context = CloneContext.Create(presentation2, presentation1);
foreach (var slide in presentation2.Slides)
    presentation1.Slides.AddClone(slide, context);

// Save resulting "Merged PowerPoints.pptx" file.
presentation1.Save("Merged PowerPoints.pptx");

另外,您可以参考克隆示例。

于 2020-03-31T02:58:26.113 回答