![]() |
|---|
演示文稿常要放进文档站点、代码仓库或知识库,这些场合更适合 Markdown:改动可以逐行比对,静态站点生成器也能直接渲染。逐页誊抄费时,标题层级与列表缩进也容易出错。
Spire.Presentation for Java 可读取 .pptx 文件将其转换为 Markdown 格式文件,运行环境无需安装 Microsoft PowerPoint。
教程概览
环境搭建
开始转换之前,先将 Spire.Presentation for Java 引入项目。
为什么选择 Spire.Presentation for Java
PowerPoint 演示文稿本身不能导出 Markdown,转换时需要借助能解析幻灯片结构的组件。Spire.Presentation for Java 支持整份、连续多页与单张幻灯片三种范围,加载与写出各由一个方法完成,无需安装 Office。
安装 Spire.Presentation for Java
项目使用 Maven 时,在 pom.xml 中加入以下配置即可引入 JAR 文件:
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.presentation</artifactId>
<version>11.10.4</version>
</dependency>
</dependencies>
如果不使用 Maven,可以直接下载 Spire.Presentation for Java 安装包,并将 JAR 文件添加到项目的 classpath 中。
将 PowerPoint 演示文稿转换为 Markdown
演示文稿的标题、分节与表格会保留在 Markdown 中,转换结果可直接提交到仓库或交给站点生成器。转换范围可按需选择:整份、连续多页或单张幻灯片。三种写法的加载方式相同,区别只在由 Presentation 还是 ISlide 写出。
1. 整份演示文稿转换为 Markdown
整份转换无需指定范围,读入文件后一次写出,顺序与演示时一致。
将整份 PowerPoint 演示文稿转换为 Markdown 时,载入与写出各由一个方法完成:
| 写法 | 得到的结果 |
|---|---|
presentation.loadFromFile("data/Sample.pptx") |
从项目的 data 目录载入待转换的演示文稿 |
presentation.saveToFile("WholePresentation.md", FileFormat.Markdown) |
把整份演示文稿写入 Markdown 文件 |
presentation.dispose() |
释放 Presentation 对象占用的资源 |
具体操作步骤如下:
- 用
new Presentation()创建 Presentation 对象。 - 用
presentation.loadFromFile载入示例演示文稿。 - 用
presentation.saveToFile传入输出文件名与FileFormat.Markdown。 - 用
presentation.dispose释放 Presentation 对象占用的资源。
import com.spire.presentation.*;
public class ConvertWholePresentation {
public static void main(String[] args) throws Exception {
// 创建 Presentation 对象
Presentation presentation = new Presentation();
// 加载示例演示文稿
presentation.loadFromFile("data/Sample.pptx");
// 将整份演示文稿保存为 Markdown 文件
presentation.saveToFile("WholePresentation.md", FileFormat.Markdown);
// 释放 Presentation 对象占用的资源
presentation.dispose();
}
}
转换整份演示文稿后的 Markdown 文件:

2. 多页幻灯片转换为 Markdown
只需要演示文稿中的一段时,给出起止序号即可,范围之外的内容不会写入结果。
将多页幻灯片转换为 Markdown 时,saveToFile 在输出文件名与目标格式之前多了起始、结束两个序号:
| 写法 | 得到的结果 |
|---|---|
presentation.saveToFile(1, 3, "SelectedSlides.md", FileFormat.Markdown) |
把第 2 张到第 4 张幻灯片写入 Markdown 文件 |
具体操作步骤如下:
- 用
new Presentation()创建 Presentation 对象。 - 用
presentation.loadFromFile载入示例演示文稿。 - 用
presentation.saveToFile依次传入起始序号1、结束序号3、输出文件名与FileFormat.Markdown。 - 用
presentation.dispose释放 Presentation 对象占用的资源。
import com.spire.presentation.*;
public class ConvertSelectedSlides {
public static void main(String[] args) throws Exception {
// 创建 Presentation 对象
Presentation presentation = new Presentation();
// 加载示例演示文稿
presentation.loadFromFile("data/Sample.pptx");
// 将第 2 张到第 4 张幻灯片保存为 Markdown 文件
presentation.saveToFile(1, 3, "SelectedSlides.md", FileFormat.Markdown);
// 释放 Presentation 对象占用的资源
presentation.dispose();
}
}
转换第 2 张至第 4 张幻灯片后的 Markdown 文件:

3. 指定页幻灯片转换为 Markdown
只需要其中一页时,从幻灯片集合中取出该页,用 ISlide 写出即可,结果文件仅含这一页。
将指定页幻灯片转换为 Markdown 时,写出动作由取出的 ISlide 对象完成:
| 写法 | 得到的结果 |
|---|---|
presentation.getSlides().get(1) |
取出第 2 张幻灯片,返回 ISlide 对象 |
slide.saveToFile("SingleSlide.md", FileFormat.Markdown) |
把这一张幻灯片写入 Markdown 文件 |
具体操作步骤如下:
- 用
new Presentation()创建 Presentation 对象,并用presentation.loadFromFile载入示例演示文稿。 - 用
presentation.getSlides().get(1)按索引取出第 2 张幻灯片,赋给ISlide变量。 - 用
slide.saveToFile传入输出文件名与FileFormat.Markdown,把这一张幻灯片写出为 Markdown 文件。 - 用
presentation.dispose释放 Presentation 对象占用的资源。
import com.spire.presentation.*;
public class ConvertSingleSlide {
public static void main(String[] args) throws Exception {
// 创建 Presentation 对象
Presentation presentation = new Presentation();
// 加载示例演示文稿
presentation.loadFromFile("data/Sample.pptx");
// 获取第 2 张幻灯片
ISlide slide = presentation.getSlides().get(1);
// 将指定幻灯片保存为 Markdown 文件
slide.saveToFile("SingleSlide.md", FileFormat.Markdown);
// 释放 Presentation 对象占用的资源
presentation.dispose();
}
}
转换第 2 张幻灯片后的 Markdown 文件:

总结
在 Java 中将 PowerPoint 演示文稿转换为 Markdown,本质上就是读取幻灯片结构并按文本格式写出。Markdown 轻量、通用,适合提交到代码仓库,也适合在文档站点与知识库中渲染。通过搭建 Spire.Presentation for Java 环境并参考本文示例代码,即可实现自动化转换,减少手动操作并提高效率。
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
常见问题
saveToFile 的幻灯片序号从 0 开始还是从 1 开始
原因:Presentation 的起止序号与 getSlides().get(索引) 都以 0 为第一张幻灯片,起止两个序号都把首尾两张包含在导出范围内。传 1 与 3 得到的是第 2 张到第 4 张,共三张。
解决:导出前 N 张时传起始序号 0、结束序号 N - 1;getSlides().get(0) 取到的同样是第 1 张幻灯片。只导出其中一张时,可直接对该页调用 slide.saveToFile。
转换是否需要安装 Microsoft PowerPoint
原因:Spire.Presentation for Java 是独立的 Java 库,自行解析 .pptx 文件的内容结构,不依赖其他 Office 组件。
解决:运行环境只需 JDK 与项目依赖,无需安装 Microsoft PowerPoint 或其他 Office 组件。
转换后的 Markdown 中为什么看不到图片和备注
原因:Markdown 结果以文字结构为主,幻灯片中的图片不会转成图片链接,演讲者备注也不写入结果文件。
解决:图片与排版需要保留时改用 PowerPoint 转 HTML 或 PDF;需要图片参与,可在转换后手工补充图片引用。








