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文件夹,里面包 ...
随机推荐
- 一、常用的Dos命令
# 查看目录下所有文件 dir # 切换目录 cd cd .. //返回上一级 # 清理屏幕 cls # 查询电脑ip地址 ipconfig # 退出终端 exit # 创建文件夹 md test # ...
- ElasticSearch 7.8.1集群搭建
通往集群的大门 集群由什么用? 高可用 高可用(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间.如果系统每运行100个时间 ...
- Windows下nacos单机部分发现的坑
一.下载nacos的地址: https://github.com/alibaba/nacos/releases 下载 nacos-server-1.3.2.tar.gz 就好 二.在Window ...
- Java并发--三大性质
一.多线程的三大性质 原子性:可见性.有序性 二.原子性 原子性介绍 原子性是指:一个操作时不可能中断的,要么全部执行成功要么全部执行失败,有着同生共死的感觉.即使在多线程一起执行的时候,一个操作一旦 ...
- IE9知识点汇总
1.首先ie9不支持flex布局,只能使用float,要想支持ie低版本,两者要同时使用. 2.input框不支持placeholder属性,只能自己加span标签模拟出来,调整样式. 3.单个css ...
- window下git多账户管理
前言 一般情况下,我们都是一台电脑配置一个Git账号,使用如下命令: git config --global user.name "your name" git config -- ...
- js中的寄生组合继承
function inheritProperty(subType, superType) { function F(){} F.prototype = superType.prototype; sup ...
- SpringBoot整合WebSocket实现前后端互推消息
小编写这篇文章是为了记录实现WebSocket的过程,受不了啰嗦的同学可以直接看代码. 前段时间做项目时设计了一个广播的场景,具体业务不再赘述,最终要实现的效果就是平台接收到的信息实时发布给所有的用户 ...
- 蒲公英 · JELLY技术周刊 Vol.19 从零开始的 Cloud IDE 开发
蒲公英 · JELLY技术周刊 Vol.19 你是否也会有想法去开发一个自己的 IDE 却苦于时间和精力不足,完成 Desktop IDE 却又被 Cloud IDE 的概念追在身后难以入睡,这样的两 ...
- CF1349A Orac and LCM 题解
题意分析 给出$n$个数,求这$n$个数两两的最小公倍数的最大公约数 思路分析 通过分析样例可以发现,如果要成为这$n$个数两两的最小公倍数的公约数,至少要是这$n$个数中$n-1$个数的约数,否则就 ...