Java 合并、拆分PPT幻灯片
序
在日常使用PPT时,为了便于操作和管理文档,时常会遇到需要将PPT幻灯片进行合并或拆分的情况。本文将通过Java程序来演示如何进行上述操作。
示例要点:
1. 合并PPT幻灯片
1.1 将第一个PPT文档中的指定幻灯片数据,写入到第二个PPT文档的指定位置。
1.2 加载多个独立的PPT文档,并将第一个文档中的所有幻灯片数据添加到第二个文档中。
2. 拆分PPT幻灯片
2.1 按每一页拆分
2.2 按指定幻灯片页数范围拆分
环境配置:
- Intellij Idea2019.1(下载配置教程戳链接)
- JDK 1.8.0(下载安装教程戳链接)
- Spire.Presentation.jar(通过官网下载安装包,解压后将lib文件夹下的Spire.Presentation.jar手动导入IDEA中。)
测试文档如下:
【示例1】合并PPT幻灯片
Part 1 将指定幻灯片合并到文档
1 import com.spire.presentation.*; 2 3 public class MergePPT1 { 4 public static void main(String[] args) throws Exception { 5 //加载文档1,获取第三张幻灯片 6 Presentation ppt1 = new Presentation(); 7 ppt1.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample1.pptx"); 8 ISlide slide = ppt1.getSlides().get(2); 9 10 //加载文档2,将文档1中获取的幻灯片作为第二张插入到文档2 11 Presentation ppt2 = new Presentation(); 12 ppt2.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample2.pptx"); 13 int index = 1; 14 ppt2.getSlides().insert(index,slide); 15 16 //保存文档2 17 ppt2.saveToFile("output/merge1.pptx",FileFormat.PPTX_2013); 18 ppt2.dispose(); 19 } 20 }
合并效果:
Part 2 将多个幻灯片文档合并为一个文档
1 import com.spire.presentation.*; 2 3 public class MergePPT2 { 4 public static void main(String[] args) throws Exception { 5 //加载文档1,文档2 6 Presentation ppt1 = new Presentation(); 7 ppt1.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample1.pptx"); 8 Presentation ppt2 = new Presentation(); 9 ppt2.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample2.pptx"); 10 11 //遍历文档1的所有幻灯片,添加到文档2 12 for(int i = 0;i<ppt1.getSlides().getCount();i++){ 13 ppt2.getSlides().append(ppt1.getSlides().get(i)); 14 } 15 16 //保存文档2 17 ppt2.saveToFile("output/merge2.pptx",FileFormat.PPTX_2013); 18 ppt2.dispose(); 19 } 20 }
合并效果:
【示例2】拆分PPT幻灯片
Part 1 按幻灯片每一页来拆分
1 import com.spire.presentation.*; 2 public class SplitPPT1 { 3 public static void main(String[] args) throws Exception { 4 //加载测试文档1 5 Presentation ppt1 = new Presentation(); 6 ppt1.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample1.pptx"); 7 8 //遍历文档1 9 for (int i = 0; i < ppt1.getSlides().getCount(); i++) { 10 11 //新建一个PPT文档,并移除默认生成的第一页幻灯片 12 Presentation newppt = new Presentation(); 13 newppt.getSlides().removeAt(0); 14 15 //将每一页添加到新建的文档,并保存 16 newppt.getSlides().append(ppt1.getSlides().get(i)); 17 newppt.saveToFile(String.format("output/单页拆分-%1$s.pptx", i), FileFormat.PPTX_2013); 18 } 19 } 20 }
拆分效果:
Part 2 按指定幻灯片页数范围来拆分
1 import com.spire.presentation.*; 2 3 public class SplitPPT2 { 4 public static void main(String[] args) throws Exception { 5 //加载文档1 6 Presentation ppt1 = new Presentation(); 7 ppt1.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample1.pptx"); 8 9 //新建文档1,移除默认生成的第一页幻灯片 10 Presentation newppt1 = new Presentation(); 11 newppt1.getSlides().removeAt(0); 12 13 //将文档1中的第一、二页添加到新建的文档1,并保存 14 for (int i = 0; i < 2; i++) 15 { 16 newppt1.getSlides().append(ppt1.getSlides().get(i)); 17 } 18 newppt1.saveToFile(String.format("output/拆分1.pptx"), FileFormat.PPTX_2013); 19 20 //新建文档2,移除默认生成的第一页幻灯片 21 Presentation newppt2 = new Presentation(); 22 newppt2.getSlides().removeAt(0); 23 24 //将文档2中的第三、四、五页添加到新建的文档2,并保存 25 for(int j = 2;j < 5;j++){ 26 newppt2.getSlides().append(ppt1.getSlides().get(j)); 27 } 28 newppt2.saveToFile(String.format("output/拆分2.pptx"), FileFormat.PPTX_2013); 29 } 30 }
拆分效果:
总结
通过以上代码示例,我们可以将PPT文档按照需求进行合并或拆分。若对代码或产品包导入有疑问,可评论或私信。