[工具类]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);
}
}
拆分结果:

相关文章:
[工具类]Java 合并、拆分PPT幻灯片
本文将介绍在Java程序中如何来合并及拆分PPT文档的方法。示例大纲: 1. 合并 1.1 将指定幻灯片合并到文档 1.2 合并多个幻灯片文档为一个文档 2. 拆分 2.1 按幻灯片每一页单独拆分为一个文档 2.2 按指定幻灯片页数范围来拆分为多个文档 使用工具:F…...
深入了解 Timber:全面掌握 Android 日志记录的最佳实践
深入了解 Timber:全面掌握 Android 日志记录的最佳实践 Timber 是由 Jake Wharton 提供的一个流行的 Android 日志记录库。它旨在简化日志记录、增强日志管理,并提高代码的可维护性。在本文中,我们将深入探讨 Timber 的功能、使用方法以及最…...
阿一课代表随堂分享:红队反向代理之使用frp搭建反向代理
frp反向代理 frp简介 frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议。 frp 是一个可用于内网穿透的高性能的反向代理应用,分为服务端frps和客户端frpc,支持 tcp, udp, http, https 协议。详…...
基于vue的引入登录界面
以下是一些常见的登录页面布局: 1. 中心布局 - 登录表单位于页面的中心位置,通常包括用户名输入框、密码输入框、登录按钮等元素。页面背景简洁,以突出登录表单。 - 这种布局常见于大多数网站和应用,简洁明了,用户注意…...
centos7升级到欧拉openeule
centos7升级到欧拉openeule 一、准备工作 1、安装迁移工具(安装迁移工具的机器不能给自己升级,请用其他机器作为迁移母机) wget https://repo.oepkgs.net/openEuler/rpm/openEuler-20.03-LTS-SP1/contrib/x2openEuler/x86_64/Packages/x2…...
阿里云 Ubuntu 开启允许 ssh 密码方式登录
以前用的 centos,重置系统为 ubuntu 后在ssh 远程连接时遇到了点问题: 在阿里云控制台重置实例密码后无法使用密码进行 SSH 连接登录 原因:阿里云 Ubuntu 默认禁用密码登录方式 解决办法: 先使用其他用户登录到服务器 这里进来…...
利用投标相似度辅助围串标判定
摘要 围标(bid rigging)是一种非法的竞争行为,对市场公平性和公共资源分配造成严重影响。本文探讨了如何利用投标相似度来辅助判定围标行为。通过详细分析投标文件的内容相似性,选取适当的指标进行相似度计算,并结合实…...
iOS 开发者的 Flutter 入门课
作为一名 iOS 开发者,入门 Flutter 需要了解一些新的工具和概念,但也能利用你已有的知识和技能。以下是一个详细的入门指南,帮助你快速上手 Flutter: 1. 环境设置 首先,你需要设置开发环境。 安装 Flutter SDK 前往…...
单机版k8s搭建
环境配置: 关闭防火墙和交换内存 systemctl stop ufwsudo swapoff -a安装Docker 更新安装包 sudo apt-get update安装依赖 sudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates获取证书 curl -fsSL http://mirrors.a…...
IDEA创建Spring项目无法使用Java8的解决方案
文章目录 一,创建Project,无法选择Java81,无法选择Java82,选择JDK17报错 二,原因分析1,Spring Boot将来会全力支持Java17,不再维护支持Java8的版本 三,解决方案1,使用国内…...
无障碍快捷方式图标
问题背景 测试反馈,无障碍快捷方式和setting里的无障碍图标不一致。 无障碍快捷方式悬浮窗 1、悬浮窗在systemui中 frameworks\base\packages\SystemUI\src\com\android\systemui\accessibility\floatingmenu\AccessibilityTargetAdapter.java 图标获取方式&…...
基于LangChain的RAG开发教程(二)
v1.0官方文档:https://python.langchain.com/v0.1/docs/get_started/introduction/ 最新文档:https://python.langchain.com/v0.2/docs/introduction/ LangChain是一个能够利用大语言模型(LLM,Large Language Model)能…...
Nifi 与 Kettle
01 Kettle简介 Kettle是一个开源的ETL(Extract-Transform-Load)工具,可以用于数据集成、数据转换和数据处理等任务。它提供了一组可视化的设计工具,使得用户可以通过简单的拖拽和连接来构建数据流程,并且还支持多种数据…...
uniapp安卓端实现语音合成播报
最初尝试使用讯飞语音合成方式,能获取到语音数据,但是数据是base64格式的,在安卓端无法播放,网上有说通过转成blob格式的url可以播放,但是uniapp不支持转换的api;于是后面又想其他办法,使用安卓插件播报原生安卓语音播报插件 - DCloud 插件市场 方案一(讯飞语音合成) 1.在讯飞…...
Studying-代码随想录训练营day31| 56.合并区间、738.单调递增的数字、968.监控二叉树、贪心算法总结
第31天,贪心最后一节(ง •_•)ง💪,编程语言:C 目录 56.合并区间 738.单调递增的数字 968.监控二叉树 贪心算法总结 56.合并区间 文档讲解:代码随想录合并区间 视频讲解:手撕合并区间 题目…...
springboot装修接单平台-计算机毕业设计源码25005
摘要 随着装修行业的快速发展和数字化趋势,传统的装修接单方式已显不足以满足用户需求,因此建立一个便捷高效的平台具有重要意义。通过利用Java语言的跨平台特性和强大的编程能力,结合SpringBoot框架的快速开发特性和Mysql数据库的稳定性&…...
matlab仿真 信道(下)
(内容源自详解MATLAB/SIMULINK 通信系统建模与仿真 刘学勇编著第四章内容,有兴趣的读者请阅读原书) 之前的内容还剩下simulink的仿真过程。 3.simulink中的AWGN模块仿真 系统框图如图所示,TX和RX 模块需要单独实现…...
华宇携TAS应用中间件亮相2024年山东江信智能信创产品推介会
信创产业是数据、网络安全的基础,也是“新基建”的重要内容,将成为拉动经济发展的重要抓手之一。 7月5日,以“信守时代机遇,创造辉煌未来”为主题的山东江信智能信创产品推介会在济南举办。本次产品推介会汇聚了国内众多信息技术…...
单向链表的数据存储(申请堆空间)
函数功能: 0.排序(逆置和顺序排序) 1.回显 2.头插 3.位插 4.尾插 5.尾删 6.头删 7.位删 8.查找 (按值或按位查找) 9.修改 (按值或按位修改) 10.退出 main.c …...
MySQL8之mysql-community-common的作用
在MySQL 8中,mysql-community-common是一个软件包,它提供了MySQL服务器和客户端库所需的一些共同文件。具体来说,mysql-community-common的作用包括但不限于以下几点: 1. 提供基础配置和错误信息 错误信息和字符集包:…...
从‘找不到设备’到驱动成功:3DSystems Touch HID 在Linux下的连接问题全解析与诊断工具使用
从‘找不到设备’到驱动成功:3DSystems Touch HID 在Linux下的连接问题全解析与诊断工具使用 当你在Ubuntu系统中第一次连接3DSystems Touch HID设备时,可能会遇到各种令人困惑的问题——设备无法识别、动态链接库错误、/dev/ttyACM*设备消失等。这些问…...
2026年6月PMP考试:70天冲刺,这5个“备考误区”正在偷偷浪费你的时间
大家好,我是老陈。 今天这篇,我不想再写什么“每天学几小时、刷多少题”了。 前面写了好几篇,该说的都说了。今天咱们换个角度,聊聊那些看似正确、实则坑人的备考误区。 为什么聊这个?因为我发现一个规律࿱…...
告别数据标注!用Dynablox+Voxblox在ROS2上实现实时动态物体检测(保姆级配置)
零标注动态感知革命:DynabloxVoxblox在ROS2中的实战部署指南 当机器人在商场扶梯间遇到滚动的玩具球,或在仓库中识别扛着纸箱的工人时,传统基于深度学习的检测方法往往需要大量场景特定的标注数据。ETH Zurich与MIT联合发布的Dynablox技术&am…...
Linux服务器安全升级:5分钟搞定Google Authenticator+SSH双因素认证(附应急码管理技巧)
Linux服务器极简安全升级:Google Authenticator与SSH双因素认证实战指南 当你还在为服务器密码泄露风险辗转反侧时,全球已有超过80%的企业级系统采用双因素认证作为基础防护。但传统方案往往让运维新手望而却步——直到Google Authenticator遇上SSH&…...
iStore增强插件:从网络优化到智能家居,一站式解决家庭与极客的哪些核心痛点?
1. iStore增强插件:家庭网络优化的全能助手 家里WiFi信号时好时坏?孩子上网课总卡顿?智能设备频繁掉线?这些问题可能困扰过很多家庭用户。iStore增强插件就像给路由器装上了"涡轮增压",它能从多个维度提升家…...
Steam创意工坊模组下载终极指南:告别平台限制,轻松获取海量游戏内容
Steam创意工坊模组下载终极指南:告别平台限制,轻松获取海量游戏内容 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 还在为跨平台游戏无法下载Steam创意…...
WarcraftHelper:魔兽争霸3现代系统兼容性优化终极指南 [特殊字符]
WarcraftHelper:魔兽争霸3现代系统兼容性优化终极指南 🎮 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现…...
Xilinx ZYNQ/MPSOC开发者必看:如何为你的PetaLinux 2022.1工程搭建一个高效的本地缓存服务器(sstate downloads)
Xilinx ZYNQ/MPSOC团队开发实战:构建企业级PetaLinux缓存服务器集群 当五个工程师同时对着公司服务器发起全量编译时,机房里传出的风扇轰鸣声总让我想起波音747起飞——这是我们去年某个ZYNQ UltraScale项目的日常。直到我们在本地部署了分布式sstate缓存…...
QMLWeb:让QML应用在浏览器中无缝运行的开源引擎
QMLWeb:让QML应用在浏览器中无缝运行的开源引擎 【免费下载链接】qmlweb A QML engine in a web browser. Current state: fixing things… 项目地址: https://gitcode.com/gh_mirrors/qm/qmlweb QMLWeb是一个创新的开源项目,它打破了QML只能在桌…...
别再只用CPU了!手把手教你用CUDA C++写第一个GPU并行程序(附完整代码)
从零开始:用CUDA C解锁GPU并行计算的实战指南 如果你是一名C开发者,可能已经习惯了在CPU上编写串行代码。但当你面对海量数据计算时,是否曾感到CPU力不从心?现代GPU拥有数千个计算核心,能够同时执行大量线程࿰…...
