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文件夹,里面包 ...
随机推荐
- python设计模式之享元模式
python设计模式之享元模式 由于对象创建的开销,面向对象的系统可能会面临性能问题.性能问题通常在资源受限的嵌入式系统中出现,比如智能手机和平板电脑.大型复杂系统中也可能会出现同样的问题,因为要在其 ...
- NOIP真题索引
NOIP真题索引 NOIP2019 Day 1 格雷码 括号树 树上的数 Day 2 Emiya 家今天的饭 划分 树的重心 NOIP2018 Day 1 铺设道路 货币系统 赛道修建 Day 2 旅 ...
- 对拍(C++)
对拍(C++) 对拍是什么 众所周知,当我们正在考试敲代码的时候,每一道题,都会有某种正解能拿到满分:当我们想不出正解时,我们往往可以打暴力代码来骗分. 但是,当我们有思路写正解,但又担心自己 ...
- web基础(四)严格模式与混杂模式
web基础(四)严格模式与混杂模式 一.介绍 DOCTYPE 标签是一种标准通用标记语言的文档类型声明,它的目的是要告诉标准通用标记语言解析器,它应该使用什么样的文档类型定义(DTD)来解析文档.DO ...
- R 安装包的方法
install.packages(packageName) install.packages(path_to_file, repos = NULL, type="source") ...
- 封装Vue Element的table表格组件
上周分享了几篇关于React组件封装方面的博文,这周就来分享几篇关于Vue组件封装方面的博文,也好让大家能更好地了解React和Vue在组件封装方面的区别. 在封装Vue组件时,我依旧会交叉使用函数式 ...
- Spring注解驱动开发04(给容器中注册组件的方式)
给容器中注册组件的方式 1. 组件注解标注 + 包扫描(适用于自己写的类) //控制层组件 @Controller public class PersonController { } //业务逻辑层组 ...
- 修改vsftpd的默认根目录/var/ftp/pub到另一个目录
修改ftp的根目录只要修改/etc/vsftpd/vsftpd.conf文件即可: 加入如下几行: local_root=/var/www/html chroot_local_user=YES ano ...
- 利用JavaScript当鼠标点击导航时改变背景
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 如何以正确的姿势安装Vue的依赖并且启动下载好的项目
首先,输入cd进入项目所在的目录. 然后输入 npm install --registry=https://registry.npm.taobao.org // --后面表示使用淘宝镜像,下 ...