Java 添加、修改、读取、删除PPT备注
概述
幻灯片中的备注信息是只提供给幻灯片演讲者观看的特定内容,在演讲者放映幻灯片时,备注信息可给演讲者提供讲解思路,起到辅助讲解的作用。本文将通过Java程序来演示如何操作PPT幻灯片中的备注信息,要点包括:
- 添加备注信息
- 修改备注信息
- 读取备注信息
- 删除备注信息
使用工具
- Free Spire.Presentation for Java (免费版)
Jar文件获取及导入:
方法1:通过官网下载JAR文件包。下载后,解压文件,并将lib文件夹下的Spire.Presentation.jar文件导入到java程序。参考如下导入效果:
方法2:可通过maven仓库安装导入到maven项目,可参考导入方法。
Java 代码示例
【示例1】添加备注信息
import com.spire.presentation.*; public class AddSpeakNotes { public static void main(String[] args) throws Exception{ //加载PowerPoint文档 Presentation ppt = new Presentation(); ppt.loadFromFile("sample.pptx"); //获取第一张幻灯片 ISlide slide = ppt.getSlides().get(2); //添加备注幻灯片到第一张幻灯片 NotesSlide notesSlide = slide.addNotesSlide(); //添加备注标题 ParagraphEx paragraph = new ParagraphEx(); String string = "备注:"; paragraph.setText(string); notesSlide.getNotesTextFrame().getParagraphs().append(paragraph); //添加第一项备注 paragraph = new ParagraphEx(); paragraph.setText("第一项备注;"); notesSlide.getNotesTextFrame().getParagraphs().append(paragraph); notesSlide.getNotesTextFrame().getParagraphs().get(1).setBulletType(TextBulletType.NUMBERED); notesSlide.getNotesTextFrame().getParagraphs().get(1).setBulletStyle(NumberedBulletStyle.BULLET_ARABIC_PERIOD); //添加第二项备注 paragraph = new ParagraphEx(); paragraph.setText("第二项备注;"); notesSlide.getNotesTextFrame().getParagraphs().append(paragraph); notesSlide.getNotesTextFrame().getParagraphs().get(2).setBulletType(TextBulletType.NUMBERED); notesSlide.getNotesTextFrame().getParagraphs().get(2).setBulletStyle(NumberedBulletStyle.BULLET_ARABIC_PERIOD); //添加第三项备注 paragraph = new ParagraphEx(); paragraph.setText("第三项备注;"); notesSlide.getNotesTextFrame().getParagraphs().append(paragraph); notesSlide.getNotesTextFrame().getParagraphs().get(3).setBulletType(TextBulletType.NUMBERED); notesSlide.getNotesTextFrame().getParagraphs().get(3).setBulletStyle(NumberedBulletStyle.BULLET_ARABIC_PERIOD); //保存文档 ppt.saveToFile("AddSpeakerNotes.pptx", FileFormat.PPTX_2013); ppt.dispose(); } }
备注添加效果:
【示例2】修改备注信息
import com.spire.presentation.*; public class ModifySpeakerNotes { public static void main(String[] args) throws Exception{ //加载测试文档 Presentation ppt = new Presentation(); ppt.loadFromFile("AddSpeakerNotes.pptx "); //获取指定幻灯片 ISlide slide = ppt.getSlides().get(2); //修改指定备注信息 slide.getNotesSlide().getNotesTextFrame().getParagraphs().get(1).setText("新修改的备注信息"); slide.getNotesSlide().getNotesTextFrame().getParagraphs().get(2).setAlignment(TextAlignmentType.CENTER); slide.getNotesSlide().getNotesTextFrame().getParagraphs().get(2).setBulletStyle(NumberedBulletStyle.BULLET_ROMAN_UC_PAREN_RIGHT); //保存文档 ppt.saveToFile("modifySpeakerNotes.pptx",FileFormat.PPTX_2013); ppt.dispose(); } }
备注修改效果:
【示例3】读取备注信息
import com.spire.presentation.*; import java.io.FileWriter; public class ExtractSpeakerNotes { public static void main(String[] args) throws Exception{ //加载测试文档 Presentation ppt = new Presentation(); ppt.loadFromFile("AddSpeakerNotes.pptx"); //获取指定幻灯片 ISlide slide = ppt.getSlides().get(2); //获取幻灯片中的备注内容 StringBuilder builder = new StringBuilder(); String notes = slide.getNotesSlide().getNotesTextFrame().getText(); builder.append(notes); //保存到文本文档 FileWriter writer = new FileWriter("ExtractSpeakerNotes.txt"); writer.write(builder.toString()); writer.flush(); writer.close(); } }
备注信息读取结果:
【示例4】删除备注信息
import com.spire.presentation.*; public class DeleteSpeakerNotes { public static void main(String[] args) throws Exception{ //加载测试文档 Presentation ppt = new Presentation(); ppt.loadFromFile("test.pptx"); //获取指定幻灯片 ISlide slide = ppt.getSlides().get(2); //删除备注信息 slide.getNotesSlide().getNotesTextFrame().getParagraphs().get(0).getTextRanges().clear();//删除指定段落中的备注信息 //slide.getNotesSlide().getNotesTextFrame().getParagraphs().clear();//删除所有备注信息 //保存文档 ppt.saveToFile("deleteSpeakerNotes.pptx",FileFormat.PPTX_2013); ppt.dispose(); } }
备注信息删除效果:
(本文完)
转载请注明出处!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)