最近用 AI 生成 PPT 挺上头的,几秒钟就能出一套看起来相当专业的演示文稿。但真到实际使用的时候,很多人就被卡住了:AI 生成的结果要么是一张张铺满整页的图片,要么只能导出 PDF,想改一个字、调一个颜色、挪一个图标,完全没有办法。更尴尬的是,你拿着这套“图片 PPT”去做汇报,领导说“第三页这个数据帮我改成最新版”,你只能默默重新打开 AI 工具,把整段提示词再改一遍重新生成。
这篇文章要解决的,就是这个“能看不能改”的问题。我会从 AI 生成 PPT 的技术原理讲起,再给出一个完全开源的替代方案:让 AI 负责写“源稿”,本地开源工具负责转成真正可编辑的 PPT 文件。整套流程跑通之后,你既能享受 AI 的高效,也能拿到 PowerPoint、WPS 都能直接打开的 .pptx 源文件,二次编辑不再求人。
1. 为什么 AI 生成的 PPT 大多是图片
1.1 AI 生成 PPT 的常见实现方式
市面上绝大多数 AI 做 PPT 的工具,底层其实就是两条路线。
第一条路线是“模板拼图”。AI 先生成文字大纲,然后从素材库里挑一套模板,把文字套进去,再渲染成一张张 PPT 页面。这种做法的本质是服务端渲染,用户拿到的是最终渲染结果,通常是 PDF、图片或者带水印的网页。你要的是源文件,但工具给你的只是“成品照片”。
第二条路线是“网页原生渲染”。一些工具会先把 PPT 转成 HTML 页面,再用无头浏览器截图,把每一页幻灯片变成 PNG 图片。图片确实是高清的,但图片里的文字是像素点,不是字符,所以没有任何编辑能力。
无论哪条路线,对用户来说体验是一样的:视觉上很好看,结构上很完整,但无法在 Office 软件里选中文字、修改图表、拖动文本框。
1.2 图片型 PPT 的痛点
图片型 PPT 最麻烦的地方不是“看着难受”,而是“没法改”。
- 改文字:图片里的文字是死的,不能选中,不能删除,只能整页重新生成。
- 改数据:AI 生成的市场数据、统计数字如果出现错误,你在图片上没办法修正。
- 改排版:想调整标题位置、公司 Logo、页脚信息,图片完全无能为力。
- 协同办公:团队成员要在同一份 PPT 上协作,图片型文件根本没法做多人在线编辑。
- 版本管理:你无法比较两版之间的差异,因为每一次修改都是重新生成的新图片。
这也是为什么很多团队最后还是会回到传统 PPT 工作流:AI 可以作为灵感和内容来源,但最终交付物必须是可编辑的源文件。
1.3 真正的需求:拿到可编辑源文件
所谓“可编辑源文件”,就是 PowerPoint 的 .pptx 格式,或者是 WPS 能直接打开的演示文稿文件。.pptx 本身是一种基于 XML 的压缩包格式,里面包含幻灯片页面、文本内容、图片资源、主题样式等结构化数据。只有在拿到这种结构化文件之后,你才能在 Office 软件里自由修改。
所以核心问题就变成了:如何让 AI 生成的内容,最终落到 .pptx 这种可编辑格式里?
直接让 AI 工具导出 .pptx 往往做不到,但我们可以换个思路:让 AI 生成的不是“最终成品”,而是“中间源文件”,再用其他工具做格式转换。这就是本文的主题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 解决方案:AI 生成 Markdown,开源工具转换 PPTX
2.1 为什么选 Markdown 作为中间格式
Markdown 是一种轻量级标记语言,用 #、-、** 这类简单符号标记标题、列表、加粗等格式。AI 模型对 Markdown 的生成能力非常强,因为它是所有大语言模型训练语料里最常见的文本格式之一。
更重要的是,Markdown 是纯文本,AI 输出后你可以直接保存成 .md 文件。这个文件就是“源文件”,你可以随时修改、重新生成、提交到 Git 仓库,也可以交给任何工具继续处理。
流程变成这样:
code复制AI 生成 Markdown 内容
↓
保存为 slide.md(源文件)
↓
开源工具转换
↓
导出可编辑的 .pptx / PDF / HTML
对比原来的“AI 直接输出图片 PPT”,这个流程多了一步转换,但换来了真正可编辑的源文件,而且是完全可控的。
2.2 开源转换方案选型
现在 Markdown 转 PPT 的开源工具有不少,最常见的有三个:
| 工具 | 特点 | 适合场景 |
|---|---|---|
| Marp CLI | 基于 Markdown 的幻灯片框架,支持导出 PPTX、PDF、图片 | 个人制作、团队分享、轻量级演示 |
| Pandoc | 万能文档转换器,支持从 Markdown 生成 PPTX | 需要批量转换、自动化流程 |
| python-pptx | 用 Python 代码直接操作 PPTX 文件 | 程序化生成、数据报表类 PPT |
这篇文章的主角是 Marp CLI,理由有三个:
- 开源免费,MIT 协议,可以放心用于商业和教学场景。
- 支持直接导出
.pptx,这是很多类似工具做不到的。 - 语法简单,AI 很容易生成符合 Marp 格式要求的 Markdown。
Pandoc 和 python-pptx 我也会在后面给出备选方案,方便你根据项目情况灵活选择。
3. 核心工具:Marp CLI 基础介绍
3.1 Marp 是什么
Marp 的全称是 Markdown Presentation Ecosystem,翻译过来就是“基于 Markdown 的演示文稿生态”。它最大的特点是:你只需要用 Markdown 写内容,Marp 负责把它渲染成幻灯片。
Marp 家族分几个项目:
- Marp Core:核心渲染引擎。
- Marp CLI:命令行工具,负责把 Markdown 转成 HTML、PDF、PPTX、PNG。
- Marp for VS Code:VS Code 扩展,可以在编辑器里实时预览幻灯片效果。
平时我们最常用的是 Marp CLI,因为命令行工具最容易接入自动化流程。
3.2 Marp 的幻灯片语法
Marp 的 Markdown 跟普通 Markdown 有一点点区别,最核心的是分页符和 front-matter。
在 Marp 中,--- 表示一页幻灯片的结束和下一页的开始。例如:
markdown复制# 第一页标题
- 要点一
- 要点二
---
# 第二页标题
这里是第二页的内容
front-matter 则写在文件最开头,用 --- 包裹,用来配置幻灯片主题、尺寸、页码等属性。注意这个 front-matter 的 --- 和分页 --- 不是同一个意思,别混淆。
示例:
markdown复制---
theme: default
size: 16:9
paginate: true
---
其中:
theme:设置主题,默认包含default、gaia、uncover等。size:设置画布比例,支持16:9和4:3。paginate:是否显示页码,true表示显示。
3.3 导出 PPTX 的原理
Marp 导出 PPTX 时,实际上是先把 Markdown 渲染成内部结构,再按照 PowerPoint XML 的格式生成 .pptx 文件。所以最终产物里的每个标题、每个文本框、每张图片都是真实的 PPT 元素,而不是一张整页截图。
这意味着你在 PowerPoint 或 WPS 里打开生成的文件,可以点进文本框编辑文字,可以拖动元素调整位置,也可以删除某一页重新排版。这个优势是图片型 PPT 完全不具备的。
4. 环境准备与安装
4.1 安装 Node.js
Marp CLI 是基于 Node.js 开发的,所以第一步是安装 Node.js 环境。
建议安装最新的 LTS(长期支持)版本,具体版本要求以 Marp 官方说明为准。安装完成后,在终端验证:
bash复制node -v
npm -v
如果能看到类似 v20.x.x 的输出,说明 Node.js 环境已经就绪。
4.2 全局安装 Marp CLI
在终端执行:
bash复制npm install -g @marp-team/marp-cli
安装完成后验证:
bash复制marp --version
如果不想全局安装,也可以使用 npx 方式直接运行:
bash复制npx @marp-team/marp-cli --version
两种方式效果类似,但全局安装更适合频繁使用。
4.3 准备项目目录
为了方便管理,建议创建一个专门存放 PPT Markdown 源文件的目录:
bash复制mkdir ai-ppt-demo
cd ai-ppt-demo
你的所有 .md 源文件和导出文件都放在这个目录里。项目结构大概是这样:
code复制ai-ppt-demo/
├── slide.md # AI 生成的 Markdown 源文件
├── theme.css # 自定义主题样式(可选)
├── images/ # 图片资源目录
└── output/ # 导出的 PPTX、PDF 文件
这里面的 output 目录需要手动创建:
bash复制mkdir output
5. 完整实战:从 AI 生成到可编辑 PPTX
这一节我们完整跑一遍流程。为了演示方便,我直接给出一份 AI 生成的 Markdown 示例,你看完以后可以把它保存为 slide.md,然后执行导出命令。
5.1 创建 Markdown 源文件
新建 slide.md,内容如下:
markdown复制---
theme: default
size: 16:9
paginate: true
---
# AI 辅助 PPT 制作流程
## 从一句话到可编辑源文件
---
# 目录
1. 为什么需要 AI 做 PPT
2. 传统 AI PPT 工具的局限
3. Markdown + Marp 解决方案
4. 完整落地流程
---
# 为什么需要 AI 做 PPT
- 提高内容产出效率
- 快速生成大纲结构
- 自动整理数据观点
- 降低排版门槛
> 核心价值:节省重复劳动时间
---
# 传统 AI PPT 工具的局限
| 痛点 | 影响 |
| --- | --- |
| 输出是图片 | 无法修改文字 |
| 导出只有 PDF | 不能二次编辑 |
| 模板锁定 | 无法换主题 |
| 版本混乱 | 难以追溯改动 |
---
# Markdown + Marp 解决方案

**核心思路**:让 AI 只生成内容,排版交给开源工具
---
# 完整落地流程
1. 确定 PPT 主题和受众
2. 设计内容大纲
3. 让 AI 根据大纲生成 Markdown
4. 保存为 `slide.md`
5. 使用 Marp CLI 导出 PPTX
6. 在 PowerPoint / WPS 中修改细节
---
# 总结
- 用文本文件管理 PPT 内容
- 用开源工具做格式转换
- 拿到可编辑的 `.pptx` 源文件
- 让 AI 回归内容生产本质
## 谢谢观看
这里我故意加入了表格、引用、图片引用等常见元素,方便后面演示不同语法的效果。其中图片引用的路径是 ./images/flow.png,你可以先创建这个目录,放一张自己的流程图。如果没有图片,可以把这一行注释掉,或直接删除。
5.2 使用 Marp CLI 导出 PPTX
在项目根目录执行:
bash复制marp slide.md --pptx --output output/slide.pptx
执行完以后,打开 output 目录,你应该能看到一个 slide.pptx 文件。
如果你希望同时导出 PDF 版本,可以执行:
bash复制marp slide.md --pdf --output output/slide.pdf
还可以导出 HTML 网页版,便于在浏览器里播放:
bash复制marp slide.md --html --output output/slide.html
5.3 在 PowerPoint 中验证可编辑性
用 PowerPoint 或 WPS 打开 slide.pptx,你会看到:
- 每页标题和正文都是独立的文本框,点击就可以编辑。
- 表格是真实的 PPT 表格,可以增删行、改数据。
- 页面内容可以复制、删除、拖动。
- 图片是独立的图片对象,可以替换。
这就意味着你真正拿到了一个可编辑的源文件,而不是一张根本无法修改的图片。
如果只是想快速预览网页效果,也可以在项目目录直接运行:
bash复制marp slide.md -w
-w 参数表示 watch 模式,MarP 会启动一个本地预览服务器,并在你保存 Markdown 时自动刷新页面。适合在制作过程中实时检查排版效果。
5.4 把 AI 生成的内容接入流程
看到这里的读者可能会问:示例我能跑通,但怎么让 AI 生成符合 Marp 语法的 Markdown?
方法是在用 AI 工具时,把“输出格式要求”写进提示词。下面是一份可以直接复制的中文提示词模板:
text复制你是一位专业的 PPT 内容规划师。请根据以下要求,用 Marp 支持的 Markdown 格式生成一套演示文稿。
主题:新能源汽车行业 2025 年趋势分析
受众:企业中层管理者
页数:8-10 页
风格:简洁、专业、数据驱动
格式要求:
1. 文件开头使用 front-matter,包含 theme: default、size: 16:9、paginate: true。
2. 每一页之间使用单独一行 --- 分隔。
3. 每页必须有明确的标题。
4. 尽量包含列表、表格、引用等排版元素。
5. 中文内容,避免英文占位符。
6. 不要输出任何解释性文字,直接输出 Markdown 内容。
AI 返回结果后,你把输出内容保存为 slide.md,然后执行导出命令。这样一套“AI 生成 + 本地转换”的生产流程就完整跑通了。
6. 进阶:自定义主题、批量导出与排版控制
6.1 用 CSS 自定义 PPT 主题
Marp 支持通过 CSS 自定义幻灯片样式。你可以新建一个 theme.css 文件,然后在 front-matter 中指定它。
示例 theme.css:
css复制/* theme.css */
/* @theme my-theme */
section {
background: #f8f9fa;
color: #333;
font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
}
section h1 {
color: #1a73e8;
border-bottom: 3px solid #1a73e8;
padding-bottom: 12px;
}
section blockquote {
background: #e8f0fe;
border-left: 4px solid #1a73e8;
padding: 12px 16px;
color: #333;
}
然后把 slide.md 的 front-matter 改成:
markdown复制---
theme: my-theme
size: 16:9
paginate: true
---
使用 marp slide.md --pptx 导出时,Marp 会读取当前目录下的 theme.css 并应用到所有页面。
注意,Marp 自定义主题文件的注释写法比较特殊,文件开头必须用 /* @theme 主题名 */ 声明主题名称,否则无法被识别。
6.2 批量处理多个 Markdown 文件
如果你的项目不止一套 PPT,可以在项目目录下执行:
bash复制marp *.md --pptx --output output/
这样目录下所有 .md 文件都会被依次转换为 .pptx。
也可以结合 shell 循环做更精细的控制。例如只转换今天修改过的文件:
bash复制for file in *.md; do
marp "$file" --pptx --output "output/${file%.md}.pptx"
done
6.3 处理图片和图表
MarP 使用标准 Markdown 图片语法。如果图片在本地,推荐使用相对路径,并且路径中不要包含空格。例如:
markdown复制
如果图片在远程服务器上,也可以直接使用 URL:
markdown复制
但远程图片在离线演示时可能加载不出来,所以本地演示场景建议下载到项目目录后再引用。
如果是数据图表,建议先用 Python、R 或其他工具生成 PNG/SVG 图片,再插入 Markdown。这样能保证图表内容和排版效果都稳定可控。
7. 常见问题与排查思路
7.1 导出 PPTX 失败
现象:执行 marp slide.md --pptx 时提示未知选项或直接报错。
原因:Marp CLI 版本过旧,或命令语法不对。
解决:
bash复制marp --version
查看版本号,如果版本过低,升级:
bash复制npm install -g @marp-team/marp-cli@latest
旧版本对 --pptx 的支持不完全,建议使用最新稳定版。
7.2 PPTX 中文字体显示异常
现象:在 PowerPoint 中打开文件,中文变成方块或字体风格不一样。
原因:Marp 在生成 PPTX 时记录的是字体名称,如果本地系统没有对应字体,Office 会自动替换。
解决:在 theme.css 中显式指定常见中文字体,比如 "Microsoft YaHei"、"PingFang SC"。导出后如果仍有问题,可以直接在 PowerPoint 里全选文字统一调整字体。
7.3 图片不显示
现象:导出的 PPTX 里图片位置是空的,或者提示图片路径错误。
原因:Markdown 里的图片路径是相对路径,转换时工作目录不对,或者图片文件不存在。
解决:确认在项目根目录执行 Marp 命令,检查相对路径是否正确。建议图片统一放在 images/ 目录中,并在 Markdown 中使用 ./images/xxx.png 形式。
7.4 分页符失效
现象:所有内容挤在一张幻灯片里。
原因:Markdown 里用于分页的 --- 被当成了普通水平线。
解决:确认每一页之间使用单独的 ---,前后各空一行。另外注意,如果文件开头的 front-matter 没有正常结束,也会导致分页解析失败。检查 front-matter 是否完整。
7.5 图表和动画无法完全还原
现象:Marp 导出的 PPTX 不像某些 AI PPT 工具那样自带花哨动画和动态效果。
原因:这是基于 Markdown 生成 PPT 的天然限制,导出的是静态排版内容。
解决:如果演示时需要动画效果,可以在导出 PPTX 后,在 PowerPoint 中手动给元素添加进入动画。Marp 解决的是“内容可编辑”问题,动画只是锦上添花,不影响主要使用场景。
7.6 常见问题速查表
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 命令找不到 | Node.js 环境未安装或全局路径未配置 | 重新安装 Node.js 并配置 PATH |
| --pptx 选项无效 | Marp CLI 版本过旧 | 升级到最新稳定版 |
| 中文乱码 | 缺少中文字体 | 在 CSS 中指定字体或安装系统字体 |
| 图片不显示 | 相对路径错误 | 检查路径和文件是否存在 |
| 分页不生效 | front-matter 格式错误 | 检查开头的 --- 对是否完整 |
| PPTX 打不开 | 输出目录无权限 | 调整目录权限或换个输出路径 |
8. 最佳实践与工程建议
8.1 内容与样式分离
传统 PPT 的制作思路是把内容直接写在 PPT 页面上,改样式等于改内容。用 Markdown + Marp 的方式,内容和样式是分离的:
- Markdown 文件只负责内容结构。
- CSS 文件负责视觉效果。
- 导出命令负责生成最终文件。
这样做的好处很明显:你可以一套 CSS 套用到多套 PPT 上,也可以让 AI 只生成内容,样式完全由本地控制。
8.2 使用 Git 做版本管理
因为 Markdown 是纯文本,所以它天生适合放进 Git 仓库。每次 AI 修改内容后,diff 非常清晰——哪一行标题变了,哪一段数据改了,都能一眼看出来。
相比之下,传统的 .pptx 文件是二进制格式,Git 无法直接追踪内容变化。这是文本源文件的一大优势。
8.3 建立自动化生成链路
结合 AI 的接口能力和 Marp 的命令行能力,你可以搭一条自动化的 PPT 生成流水线:
- 输入 PPT 主题。
- 调用 AI 接口生成 Markdown。
- 自动保存为
slide.md。 - 执行
marp slide.md --pptx。 - 输出可编辑的 PPTX 文件。
如果使用 GitHub Actions 这类 CI 工具,还可以在代码推送后自动重建 PPTX 并上传产物。这样团队每次更新内容,演示文件都会同步刷新。
8.4 生成后人工检查
AI 生成的内容即使格式正确,也需要人工检查一遍,因为事实性错误、数据过期、逻辑不通的问题在 AI 输出中并不少见。建议任何 AI 生成的 PPT 内容,交付前都要经过人工审核。对包含外部数据的页面,最好标注数据来源并核对时间。
8.5 注意安全与授权
如果 PPT 内容涉及公司机密、个人隐私或未公开数据,建议使用本地部署的开源 AI 模型,或者至少选择符合合规要求的企业版服务,不要轻易把敏感内容发送到外部平台。
同时,转换工具本身尽量保持开源和本地运行。Marp CLI、Pandoc 都是本地执行,文件不上传,安全性相对可控。
8.6 备选方案:Pandoc 和 python-pptx
如果 Marp 导出的 PPTX 样式不够满足需求,可以参考另外两个方案。
第一个是 Pandoc。Pandoc 可以把 Markdown 转成 PPTX,命令是:
bash复制pandoc slide.md -o slide.pptx
Pandoc 生成的 PPTX 样式比较朴素,适合对排版要求不高的场景,优点是稳定、批量能力强。
第二个是 python-pptx。这是一个 Python 库,适合需要用代码精确控制 PPT 内容的场景。核心思路是先用 AI 生成结构化数据(JSON、YAML),再用 Python 代码构建 PPTX。示例:
python复制from pptx import Presentation
from pptx.util import Inches
prs = Presentation()
slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(slide_layout)
title = slide.shapes.title
content = slide.placeholders[1]
title.text = "AI 生成的幻灯片"
content.text = "这段文字可以直接在 PowerPoint 中编辑"
prs.save("output/demo.pptx")
这种方式适合报表类 PPT,完全程序化控制,但需要编写更多代码。
8.7 如何选择适合自己的方案
| 场景 | 推荐方案 |
|---|---|
| 个人快速做演示 | Marp CLI |
| 批量文档转换 | Pandoc |
| 数据报表自动化生成 | python-pptx |
| 团队协作和版本管理 | Marp CLI + Git |
| 需要复杂动画特效 | 导出后再用 PowerPoint 手动补 |
没有万能的方案,关键是根据你的使用频率、内容复杂度和协作方式来选。
9. 总结
回到最初的问题:AI 做的 PPT 全是图片,怎么办?
答案不是放弃 AI,也不是忍受图片型 PPT,而是调整工作流。让 AI 生成 Markdown 文本源文件,再用 Marp CLI 这类开源工具导出为真正可编辑的 .pptx。这套方案的完整链路是:
code复制AI 生成 Markdown
→ 保存为 .md 源文件
→ marp 命令导出
→ 获得可编辑 PPTX
相比纯图片 PPT,这套方案的优势非常突出:可以修改文字、调整表格、替换图片、协同办公、版本管理。最重要的是,整个转换过程完全开源、本地执行,不依赖任何特定 AI 平台的导出功能。
下一步你可以继续探索的方向包括:Marp 的 CSS 主题系统、与 GitHub Actions 结合的自动发布流程、以及 Pandoc 的更多文档转换能力。建议从一个小项目开始,把你手头最常用的一套 PPT 用 Markdown 重写一遍,体会一下“源文件可控”的感觉。
如果这篇文章对你有帮助,可以收藏备用,后面需要用 AI 做 PPT 的时候直接照着操作就行。
