在 Android 上高效合并演示文稿
Tip
您可能想查看 Aspose 免费在线 Merger app。它允许用户在相同格式(PPT 到 PPT,PPTX 到 PPTX,等等)以及不同格式(PPT 到 PPTX,PPTX 到 ODP,等等)之间合并 PowerPoint 演示文稿。
演示文稿合并
当您将一个演示文稿合并到另一个演示文稿时,实际上是将它们的幻灯片合并到一个演示文稿中,以得到一个文件。
Info
大多数演示文稿程序(PowerPoint 或 OpenOffice)缺少允许用户以这种方式合并演示文稿的功能。
但是,Aspose.Slides for Android via Java,可以让您以不同方式合并演示文稿。您可以合并包含所有形状、样式、文本、格式、批注、动画等的演示文稿,而无需担心质量或数据的损失。
另见 Clone Slides.
可以合并的内容
使用 Aspose.Slides,您可以合并
- 整个演示文稿。所有来自这些演示文稿的幻灯片将汇总到一个演示文稿中
- 特定幻灯片。选定的幻灯片将汇总到一个演示文稿中
- 同一格式的演示文稿(PPT 到 PPT,PPTX 到 PPTX,等等)以及不同格式的演示文稿(PPT 到 PPTX,PPTX 到 ODP,等等)相互合并。
合并选项
您可以应用选项来决定是否
- 输出演示文稿中的每张幻灯片保留唯一的样式
- 为输出演示文稿中的所有幻灯片使用特定样式。
要合并演示文稿,Aspose.Slides 提供了 AddClone 方法(来自 ISlideCollection 接口)。AddClone 方法有多种实现形式,用于定义演示文稿合并过程的参数。每个 Presentation 对象都有一个 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();
}
Note
幻灯片母版的布局会自动确定。如果无法确定合适的布局,并且AddClone 方法的 allowCloneMissingLayout 布尔参数设置为 true,则使用源幻灯片的布局。否则,将抛出 PptxEditException。
如果希望输出演示文稿中的幻灯片使用不同的布局,请在合并时改用 AddClone(ISlide, ILayoutSlide) 方法。
从演示文稿中合并特定幻灯片
从多个演示文稿中合并特定幻灯片对于创建自定义幻灯片组非常有用。Aspose.Slides for Android via Java 允许您仅选择并导入所需的幻灯片。API 能够保留原始幻灯片的格式、布局和设计。
下面的 Java 代码创建了一个新演示文稿,从两个其他演示文稿中添加标题幻灯片,并将结果保存为文件:
Presentation presentation = new Presentation();
Presentation presentation1 = new Presentation("presentation1.pptx");
Presentation presentation2 = new Presentation("presentation2.pptx");
try {
presentation.getSlides().removeAt(0);
ISlide slide1 = getTitleSlide(presentation1);
if (slide1 != null)
presentation.getSlides().addClone(slide1);
ISlide slide2 = getTitleSlide(presentation2);
if (slide2 != null)
presentation.getSlides().addClone(slide2);
presentation.save("combined.pptx", SaveFormat.Pptx);
} finally {
presentation2.dispose();
presentation1.dispose();
presentation.dispose();
}
static ISlide getTitleSlide(IPresentation presentation) {
for (ISlide slide : presentation.getSlides()) {
if (slide.getLayoutSlide().getLayoutType() == SlideLayoutType.Title) {
return slide;
}
}
return null;
}
使用幻灯片布局合并演示文稿
此 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();
}
使用不同幻灯片尺寸合并演示文稿
Note
您无法合并尺寸不同的演示文稿。要合并 2 个尺寸不同的演示文稿,必须调整其中一个的尺寸,使其与另一个演示文稿的尺寸匹配。
此示例代码演示了上述操作:
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();
}
该幻灯片会被添加到章节的末尾。
常见问题
合并演示文稿时幻灯片数量是否有限制?
没有严格的限制。Aspose.Slides 能处理大文件,但性能取决于文件大小和系统资源。对于非常大的演示文稿,建议使用 64 位 JVM 并分配足够的堆内存。
我可以合并包含嵌入式视频或音频的演示文稿吗?
可以,Aspose.Slides 会保留幻灯片中嵌入的多媒体内容,但最终的演示文稿文件可能会显著增大。
合并演示文稿时字体会被保留吗?
会。只要系统已安装或已 embedded 的源演示文稿使用的字体,将在输出文件中得到保留。
