合并演示文稿

演示文稿合并

当您将一个演示文稿合并到另一个演示文稿时,实际上是在单一演示文稿中组合它们的幻灯片以获取一个文件。

可以合并的内容

使用 Aspose.Slides,您可以合并

  • 整个演示文稿。所有来源演示文稿的幻灯片最终合并为一个演示文稿
  • 特定幻灯片。所选幻灯片最终合并为一个演示文稿
  • 以相同格式(PPT 到 PPT,PPTX 到 PPTX 等)和不同格式(PPT 到 PPTX,PPTX 到 ODP 等)的演示文稿相互合并。

合并选项

您可以应用选项以确定是否

  • 输出演示文稿中的每个幻灯片保留独特样式
  • 输出演示文稿中的所有幻灯片使用特定样式。

要合并演示文稿,Aspose.Slides 提供了 AddClone 方法(来自 ISlideCollection 接口)。有多个实现的 AddClone 方法定义了演示文稿合并过程的参数。每个演示文稿对象都有一个 Slides 集合,因此您可以从希望合并幻灯片的演示文稿中调用 AddClone 方法。

AddClone 方法返回一个 ISlide 对象,这是来源幻灯片的克隆。输出演示文稿中的幻灯片只是来自源的幻灯片的副本。因此,您可以对结果幻灯片进行更改(例如,应用样式或格式选项或布局),而不必担心源演示文稿受到影响。

合并演示文稿

Aspose.Slides 提供了 AddClone(ISlide) 方法,它允许您合并幻灯片,同时幻灯片保留其布局和样式(默认参数)。

以下 Java 代码展示了如何合并演示文稿:

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide);
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

使用幻灯片母版合并演示文稿

Aspose.Slides 提供了 AddClone(ISlide, IMasterSlide, boolean) 方法,它允许您合并幻灯片,同时应用幻灯片母版演示文稿模板。这样,如果必要,您可以更改输出演示文稿中幻灯片的样式。

以下 Java 代码演示了所述操作:

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide, pres2.getMasters().get_Item(0), true);
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

如果您希望输出演示文稿中的幻灯片具有不同的幻灯片布局,请在合并时使用 AddClone(ISlide, ILayoutSlide) 方法。

从演示文稿中合并特定幻灯片

以下 Java 代码展示了如何选择并组合来自不同演示文稿的特定幻灯片以获取一个输出演示文稿:

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide, pres2.getLayoutSlides().get_Item(0));
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

使用幻灯片布局合并演示文稿

以下 Java 代码展示了如何在合并演示文稿的同时应用您喜欢的幻灯片布局,以获取一个输出演示文稿:

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide, pres2.getLayoutSlides().get_Item(0));
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

合并具有不同幻灯片大小的演示文稿

要合并两个具有不同幻灯片大小的演示文稿,您必须调整其中一个演示文稿的大小,以使其与另一个演示文稿的大小匹配。

以下示例代码演示了所述操作:

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        pres2.getSlideSize().setSize((float)pres1.getSlideSize().getSize().getWidth(), (float)pres1.getSlideSize().getSize().getHeight(), SlideSizeScaleType.EnsureFit);

        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide);
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

将幻灯片合并到演示文稿部分

以下 Java 代码展示了如何将特定幻灯片合并到演示文稿的某个部分:

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide, pres1.getSections().get_Item(0));
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

幻灯片会添加到该部分的末尾。