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 将指定幻灯片合并到文档
import com.spire.presentation.*;
public class MergePPT1 {
public static void main(String[] args) throws Exception {
//加载文档1,获取第三张幻灯片
Presentation ppt1 = new Presentation();
ppt1.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample1.pptx");
ISlide slide = ppt1.getSlides().get(2);
//加载文档2,将文档1中获取的幻灯片作为第二张插入到文档2
Presentation ppt2 = new Presentation();
ppt2.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample2.pptx");
int index = 1;
ppt2.getSlides().insert(index,slide);
//保存文档2
ppt2.saveToFile("output/merge1.pptx",FileFormat.PPTX_2013);
ppt2.dispose();
}
}
合并效果:

Part 2 将多个幻灯片文档合并为一个文档
import com.spire.presentation.*;
public class MergePPT2 {
public static void main(String[] args) throws Exception {
//加载文档1,文档2
Presentation ppt1 = new Presentation();
ppt1.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample1.pptx");
Presentation ppt2 = new Presentation();
ppt2.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample2.pptx");
//遍历文档1的所有幻灯片,添加到文档2
for(int i = 0;i<ppt1.getSlides().getCount();i++){
ppt2.getSlides().append(ppt1.getSlides().get(i));
}
//保存文档2
ppt2.saveToFile("output/merge2.pptx",FileFormat.PPTX_2013);
ppt2.dispose();
}
}
合并效果:

【示例2】拆分PPT幻灯片
Part 1 按幻灯片每一页来拆分
import com.spire.presentation.*;
public class SplitPPT1 {
public static void main(String[] args) throws Exception {
//加载测试文档1
Presentation ppt1 = new Presentation();
ppt1.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample1.pptx"); //遍历文档1
for (int i = 0; i < ppt1.getSlides().getCount(); i++) { //新建一个PPT文档,并移除默认生成的第一页幻灯片
Presentation newppt = new Presentation();
newppt.getSlides().removeAt(0); //将每一页添加到新建的文档,并保存
newppt.getSlides().append(ppt1.getSlides().get(i));
newppt.saveToFile(String.format("output/单页拆分-%1$s.pptx", i), FileFormat.PPTX_2013);
}
}
}
拆分效果:

Part 2 按指定幻灯片页数范围来拆分
import com.spire.presentation.*;
public class SplitPPT2 {
public static void main(String[] args) throws Exception {
//加载文档1
Presentation ppt1 = new Presentation();
ppt1.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample1.pptx");
//新建文档1,移除默认生成的第一页幻灯片
Presentation newppt1 = new Presentation();
newppt1.getSlides().removeAt(0);
//将文档1中的第一、二页添加到新建的文档1,并保存
for (int i = 0; i < 2; i++)
{
newppt1.getSlides().append(ppt1.getSlides().get(i));
}
newppt1.saveToFile(String.format("output/拆分1.pptx"), FileFormat.PPTX_2013);
//新建文档2,移除默认生成的第一页幻灯片
Presentation newppt2 = new Presentation();
newppt2.getSlides().removeAt(0);
//将文档2中的第三、四、五页添加到新建的文档2,并保存
for(int j = 2;j < 5;j++){
newppt2.getSlides().append(ppt1.getSlides().get(j));
}
newppt2.saveToFile(String.format("output/拆分2.pptx"), FileFormat.PPTX_2013);
}
}
拆分效果:

总结
通过以上代码示例,我们可以将PPT文档按照需求进行合并或拆分。若对代码或产品包导入有疑问,可评论或私信。
Java 合并、拆分PPT幻灯片的更多相关文章
- C# 合并、拆分PPT幻灯片
概述 通过合并.拆分的功能,将不同的文档中的幻灯片进行组合形成新的的文档,同时也可以将一个多页的PPT文档按页拆分成多个不同的文档.此功能也丰富了编程人员对PPT幻灯片的操作的选择.下面将分别从以下几 ...
- Java设置PPT幻灯片背景——纯色、渐变、图片背景
PPT幻灯片生成时,系统默认是无色背景填充,幻灯片设计需要手动设置背景效果,可设置颜色填充或者图片背景填充.本文将对此介绍具体实现方法. 使用工具:Free Spire.Presentation fo ...
- Java 复制PPT幻灯片
本篇文章将介绍通过java程序原样复制PPT幻灯片的方法.这里分两种情况来复制,即 在同一幻灯片文档中复制 在不同幻灯片文档间复制 使用工具:Free Spire.Presentation for J ...
- Java 将PPT幻灯片转为HTML
本文以Java程序代码为例展示如何通过格式转换的方式将PPT幻灯片文档转为HTML文件.这里的PPT幻灯片可以是.ppt/.pptx/.pps/.ppsx/.potx等格式. 代码实现思路:[加载PP ...
- Java 插入html字符串到PPT幻灯片
通过Java后端代码操作PPT幻灯片时,可直接在幻灯片中绘制形状,并在形状中添加文本字符串内容.本篇文章,介绍一种通过html字符串来添加内容到PPT幻灯片的的方法,可添加文字.图片.视频.音频等.下 ...
- java poi 操作ppt
java poi 操作ppt 可以参考: https://www.w3cschool.cn/apache_poi_ppt/apache_poi_ppt_installation.html http:/ ...
- [C1] C1FlexGrid 行列增删&单元格合并拆分
上一篇中实现了 C1FlexGrid的撤销还原功能,这篇是要仿 Excel 做一个行列删除以及单元格的自由合并拆分,楼主怕在原工程里复杂的说不清道不明,所以干脆提取出来做了一个 Demo 来说明实现过 ...
- 黄聪:phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把class ...
- phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
转:http://www.cnblogs.com/huangcong/p/3687665.html 首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包 ...
随机推荐
- 虚拟化技术之kvm管理工具virsh常用基础命令(一)
在上一篇博客中,我们了解了KVM基础架构和部署以及图形管理工具virt-manager安装虚拟机的过程,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13499 ...
- 区分多个web driver实例
固然可以用加载不同cookie的办法,让3个帐号共享一个web driver登陆,但总感觉切换麻烦,干脆用了3个web driver实例.问题来了,如何区分?不是说程序里如何区分,机器比人聪明,知道外 ...
- 第一篇博客 Python开发环境配置
本文主要介绍Windows7环境下安装并配置Anaconda+VSCode作为Python开发环境. 目录 Anaconda与包管理配 Anaconda安装 添加环境变量 Anaconda安装错误及解 ...
- Spring Boot系列(三):Spring Boot整合Mybatis源码解析
一.Mybatis回顾 1.MyBatis介绍 Mybatis是一个半ORM框架,它使用简单的 XML 或注解用于配置和原始映射,将接口和Java的POJOs(普通的Java 对象)映射成数据库中的记 ...
- 无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
状况 如果在使用 vue 初始化项目的时候提示: vue : 无法将“vue”项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次. ...
- 要有一颗理财的心 - 读<富爸爸.穷爸爸>
记得工作没多久后的一次加薪的例行谈话.部门经理和我说,不能靠工资过日子,要多想想怎么投资,我的主要财富就是靠投资赚来的.当时第一反应,老板,你不给我加薪找这借口也太牵强了吧.我的收入只有工资,我的工资 ...
- DevOps系列(2)-SonarQube之PostgreSQL
上一篇从整体上讲了下DevOps大概涉及到了哪些内容,以及主要工作流程,接下来我们将分步详细介绍各个部分的使用. 概览 首先从 SonarQube 开始说起,SonarQube 是一个可用于检测重复代 ...
- 区块链入门到实战(22)之以太坊(Ethereum) – 账号(地址)
作用: 外部账号 – 用户使用的账号,账户余额. 合约账号 – 智能合约使用的账号,每个智能合约都有一个账号,内存和账户余额 以太坊(Ethereum)网络中,有2种账号: 外部账号 – 用户使用的账 ...
- Python画图库Turtle库详解篇
Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...
- android开发 app闪退后fragment重叠bug解决方法,推荐使用第二种方法,完美解决问题
解决方案为以下两种: 方法1:在fragmentActivity里oncreate方法判断savedInstanceState==null才生成新Fragment,否则不做处理. 方法2:在fragm ...