当前位置: 首页 > news >正文

[工具类]Java 合并、拆分PPT幻灯片

本文将介绍在Java程序中如何来合并及拆分PPT文档的方法。示例大纲:

1. 合并

1.1 将指定幻灯片合并到文档

1.2 合并多个幻灯片文档为一个文档

2. 拆分

2.1 按幻灯片每一页单独拆分为一个文档

2.2 按指定幻灯片页数范围来拆分为多个文档

使用工具:Free Spire.Presentation for Java (免费版)
获取方法及jar文件导入:
方法1:通过官网下载。下载后,解压文件。将lib文件下的Spire.Presentation.jar文件导入java程序即可。如下导入效果:
在这里插入图片描述

方法2:通过maven导入,参考导入方法。
两个PPT测试文档如下:
在这里插入图片描述

1. 合并

1.1 将指定幻灯片合并到文档

importcom.spire.presentation.*;
public classMergeFiles1 {
public static voidmain(String[] args)throwsException{
//加载文档1,获取第三张幻灯片
Presentation ppt1 =newPresentation();
ppt1.loadFromFile("test1.pptx");
ISlide slide = ppt1.getSlides().get(2);
//加载文档2,将文档1中获取的幻灯片作为第二张插入到文档2
Presentation ppt2 =newPresentation();
ppt2.loadFromFile("test2.pptx");
intindex =1;
ppt2.getSlides().insert(index,slide);
//保存文档2
ppt2.saveToFile("merge1.pptx",FileFormat.PPTX_2013);
ppt2.dispose();
}
}

合并效果:
在这里插入图片描述

1.2 合并多个幻灯片为一个文档

importcom.spire.presentation.*;
public classMergeFiles2 {
public static voidmain(String[] args)throwsException {
//加载文档1,文档2
Presentation ppt1 =newPresentation();
ppt1.loadFromFile("test1.pptx");
Presentation ppt2 =newPresentation();
ppt2.loadFromFile("test2.pptx");
//遍历文档1的所有幻灯片,添加到文档2
for(inti =0;i<ppt1.getSlides().getCount();i++){
ppt2.getSlides().append(ppt1.getSlides().get(i));
}
//保存文档2
ppt2.saveToFile("merge2.pptx",FileFormat.PPTX_2013);
ppt2.dispose();
}
}

合并效果:
在这里插入图片描述

2. 拆分

2.1 按幻灯片每一页来拆分

importcom.spire.presentation.*;
public classSplit1 {
public static voidmain(String[] args)throwsException {
//加载测试文档1
Presentation ppt1 =newPresentation();
ppt1.loadFromFile("test1.pptx");
//遍历文档1
for(inti =0; i < ppt1.getSlides().getCount(); i++) {
//新建一个PPT文档,并移除默认生成的第一页幻灯片
Presentation newppt =newPresentation();
newppt.getSlides().removeAt(0);
//将每一页添加到新建的文档,并保存
newppt.getSlides().append(ppt1.getSlides().get(i));
newppt.saveToFile(String.format("单页拆分-%1$s.pptx", i), FileFormat.PPTX_2013);
}
}
}

拆分结果:
在这里插入图片描述

2.2 按指定幻灯片页数范围来拆分

importcom.spire.presentation.*;
public classSplit2 {
public static voidmain(String[] args)throwsException{
//加载文档1
Presentation ppt1 =newPresentation();
ppt1.loadFromFile("test1.pptx");
//新建文档1,移除默认生成的第一页幻灯片
Presentation newppt1 =newPresentation();
newppt1.getSlides().removeAt(0);
//将文档1中的第一、二页添加到新建的文档1,并保存
for(inti =0; i <2; i++)
{
newppt1.getSlides().append(ppt1.getSlides().get(i));
}
newppt1.saveToFile(String.format("拆分1.pptx"), FileFormat.PPTX_2013);
//新建文档2,移除默认生成的第一页幻灯片
Presentation newppt2 =newPresentation();
newppt2.getSlides().removeAt(0);
//将文档2中的第三、四页添加到新建的文档2,并保存
for(intj =2;j <4;j++){
newppt2.getSlides().append(ppt1.getSlides().get(j));
}
newppt2.saveToFile(String.format("拆分2.pptx"), FileFormat.PPTX_2013);
}
}

拆分结果:

在这里插入图片描述

http://www.lryc.cn/news/395452.html

相关文章:

  • 深入了解 Timber:全面掌握 Android 日志记录的最佳实践
  • 阿一课代表随堂分享:红队反向代理之使用frp搭建反向代理
  • 基于vue的引入登录界面
  • centos7升级到欧拉openeule
  • 阿里云 Ubuntu 开启允许 ssh 密码方式登录
  • 利用投标相似度辅助围串标判定
  • iOS 开发者的 Flutter 入门课
  • 单机版k8s搭建
  • IDEA创建Spring项目无法使用Java8的解决方案
  • 无障碍快捷方式图标
  • 基于LangChain的RAG开发教程(二)
  • Nifi 与 Kettle
  • uniapp安卓端实现语音合成播报
  • Studying-代码随想录训练营day31| 56.合并区间、738.单调递增的数字、968.监控二叉树、贪心算法总结
  • springboot装修接单平台-计算机毕业设计源码25005
  • matlab仿真 信道(下)
  • 华宇携TAS应用中间件亮相2024年山东江信智能信创产品推介会
  • 单向链表的数据存储(申请堆空间)
  • MySQL8之mysql-community-common的作用
  • Emacs有什么优点,用Emacs写程序真的比IDE更方便吗?
  • 如何切换手机的ip地址
  • 前端画图引擎ZRender,echarts的渲染器,你知道吗?
  • web前端开发——标签一
  • 【深度学习】探讨最新的深度学习算法、模型创新以及在图像识别、自然语言处理等领域的应用进展
  • 使用 mongo2neo4j 和 SemSpect 通过各种方式进行图探索
  • 淘宝卖家难免遇到的商品问题 在淘宝买的东西出问题了,该如何维权
  • ffmpeg 安装 h264(x264)encoder
  • Java项目:基于SSM框架实现的健康综合咨询问诊平台【ssm+B/S架构+源码+数据库+毕业论文】
  • SpringBoot源码阅读(4)——事件
  • EDI安全:如何在2024年保护您的数据免受安全和隐私威胁