PPT 演示文稿
创建、读取、编辑 .pptx 演示文稿、幻灯片、备注、模板
Powerpoint 技能
使用场景
只要涉及 .pptx 文件——无论是输入还是输出——就应用此技能。包括:创建幻灯片、提案演示、演讲文件;读取、解析或提取任何 .pptx 文件中的文本(即便提取的内容将用于其他地方,如邮件或摘要);编辑、修改或更新现有演示文稿;合并或拆分幻灯片文件;处理模板、版式、演讲者备注或批注。当用户提到"幻灯片"、"演示"、"PPT"或引用 .pptx 文件名时,无论后续打算如何处理,都应触发此技能。凡是需要打开、创建或操作 .pptx 文件的场景,都使用此技能。
快速参考
| 任务 | 方法 |
| 读取/分析内容 | `python -m markitdown presentation.pptx` |
| 编辑或基于模板创建 | 查看 [editing.md](editing.md) |
| 从零创建 | 查看 [pptxgenjs.md](pptxgenjs.md) |
---
读取内容
# 文本提取
python -m markitdown presentation.pptx
# 可视化预览
python scripts/thumbnail.py presentation.pptx
# 原始 XML
python scripts/office/unpack.py presentation.pptx unpacked/
---
编辑工作流程
查看 editing.md 获取完整详情。
使用 thumbnail.py 分析模板
解包 → 操作幻灯片 → 编辑内容 → 清理 → 打包
---
从零创建
查看 pptxgenjs.md 获取完整详情。
当没有模板或参考演示文件时使用。
---
设计思路
不要制作无聊的幻灯片。白底黑字的纯文字列表无法给人留下印象。为每张幻灯片考虑以下清单中的思路。
开始之前
选择与内容相匹配的大胆配色方案:配色应该显得是专门为这个主题设计的。如果把你的颜色换到另一个完全不同的演示中还能"凑合用",说明配色针对性不够。
主色占主导而非各色均衡:一种颜色应占据 60-70% 视觉权重,再搭配 1-2 种辅助色调和一个醒目的强调色。不要让所有颜色权重均等。
明暗对比:标题和总结页用深色背景,内容页用浅色背景("三明治"结构)。或者全程使用深色背景营造高级感。
坚持一个视觉主题:选择一个独特的元素并贯穿始终——圆角图片框、彩色圆圈图标、单侧粗边框等。每张幻灯片都延续这个元素。
配色方案
选择与主题匹配的颜色——不要默认使用通用蓝色。以下配色方案供参考:
| 主题 | 主色 | 辅助色 | 强调色 |
| **午夜行政风** | `1E2761`(海军蓝) | `CADCFC`(冰蓝) | `FFFFFF`(白色) |
| **森林苔藓** | `2C5F2D`(森林绿) | `97BC62`(苔藓绿) | `F5F5F5`(奶油色) |
| **珊瑚活力** | `F96167`(珊瑚色) | `F9E795`(金色) | `2F3C7E`(海军蓝) |
| **温暖陶土** | `B85042`(陶土色) | `E7E8D1`(沙色) | `A7BEAE`(鼠尾草绿) |
| **海洋渐变** | `065A82`(深海蓝) | `1C7293`(蓝绿) | `21295C`(午夜蓝) |
| **炭灰极简** | `36454F`(炭灰色) | `F2F2F2`(灰白) | `212121`(黑色) |
| **青蓝信赖** | `028090`(青蓝) | `00A896`(海沫绿) | `02C39A`(薄荷绿) |
| **浆果奶油** | `6D2E46`(浆果色) | `A26769`(灰玫瑰) | `ECE2D0`(奶油色) |
| **宁静鼠尾草** | `84B59F`(鼠尾草) | `69A297`(桉树绿) | `50808E`(石板蓝) |
| **樱桃大胆** | `990011`(樱桃红) | `FCF6F5`(近白) | `2F3C7E`(海军蓝) |
每张幻灯片
每张幻灯片都需要一个视觉元素——图片、图表、图标或形状。纯文字幻灯片容易被遗忘。
版式选项:
双栏(左侧文字,右侧图示)
图标+文字行(彩色圆圈中的图标、粗体标题、下方描述)
2x2 或 2x3 网格(一侧为图片,另一侧为内容块网格)
半分铺图片(左侧或右侧全铺满图片)叠加内容
数据展示:
大数字突出显示(60-72pt 大号数字 + 下方小标签)
对比列(前后对比、利弊分析、并排选项)
时间线或流程(编号步骤、箭头)
视觉润色:
章节标题旁用小彩色圆圈包裹图标
关键数据或标语使用斜体强调
字体排版
选择有趣的字体搭配——不要默认用 Arial。选择有特色的标题字体,搭配清晰的正文字体。
| 标题字体 | 正文字体 |
| Georgia | Calibri |
| Arial Black | Arial |
| Calibri | Calibri Light |
| Cambria | Calibri |
| Trebuchet MS | Calibri |
| Impact | Arial |
| Palatino | Garamond |
| Consolas | Calibri |
| 元素 | 字号 |
| 幻灯片标题 | 36-44pt 加粗 |
| 章节标题 | 20-24pt 加粗 |
| 正文 | 14-16pt |
| 注释/说明 | 10-12pt 浅色 |
间距
最小页边距 0.5 英寸
内容块之间 0.3-0.5 英寸
留出呼吸空间——不要填满每一寸
避免(常见错误)
不要重复同样的版式——在不同幻灯片之间切换分栏、卡片和突出显示
不要居中对齐正文——段落和列表左对齐;只有标题居中
不要忽视字号对比——标题需要 36pt+ 才能与 14-16pt 正文拉开差距
不要默认用蓝色——选择能反映特定主题的颜色
不要随意混用间距——选择 0.3" 或 0.5" 间距并保持一致
不要只美化一张幻灯片却让其余保持朴素——要么全部投入设计,要么整体保持简洁
不要做纯文字幻灯片——添加图片、图标、图表或视觉元素;避免纯标题+符号列表
不要忘记文本框内边距——当对齐线条或形状与文本边缘时,设置 margin: 0 在文本框上或偏移形状以考虑内边距
不要使用低对比度元素——图标和文字都需要与背景有强对比;避免浅色文字在浅色背景上或深色文字在深色背景上
绝不在标题下使用强调线——这是 AI 生成幻灯片的标志;改用留白或背景色区分
---
QA(必须执行)
假设存在问题。你的任务是找出这些问题。
首次渲染几乎不可能一步到位。QA 要以找 bug 的心态来做,而不是确认步骤。如果第一遍检查没有发现任何问题,说明检查得不够仔细。
内容 QA
python -m markitdown output.pptx
检查遗漏内容、错别字、顺序错误。
使用模板时,检查残留占位文本:
python -m markitdown output.pptx | grep -iE "xxxx|lorem|ipsum|this.*(page|slide).*layout"
如果 grep 返回结果,必须在宣布成功前修复。
视觉 QA
⚠️ 使用子代理——即使只有 2-3 张幻灯片。你盯着代码看太久,会看到你预期的样子而非实际的样子。子代理拥有新鲜视角。
将幻灯片转换为图片(参见转换为图片),然后使用以下提示词:
视觉检查这些幻灯片。假设存在问题——找到它们。
检查项:
- 重叠元素(文字穿过图形、线条穿过文字、层叠元素)
- 文本溢出或在边缘/文本框边界处被截断
- 装饰线条位置仅适配单行文本,但标题换行为两行
- 来源引用或页脚与上方内容冲突
- 元素间距过小(< 0.3" 间隙)或卡片/区域几乎碰在一起
- 间距不均(一侧有大片空白,另一侧拥挤不堪)
- 幻灯片边缘留白不足(< 0.5")
- 列或相似元素未对齐
- 低对比度文字(例如,浅灰色文字在奶油色背景上)
- 低对比度图标(例如,深色图标在深色背景上,缺少对比色圆圈)
- 文本框过窄导致过度换行
- 残留占位内容
对每张幻灯片列出问题或关注点,即使很轻微。
读取并分析这些图片:
1. /path/to/slide-01.jpg(预期:[简要描述])
2. /path/to/slide-02.jpg(预期:[简要描述])
报告所有发现的问题,包括轻微的。
验证循环
生成幻灯片 → 转换为图片 → 检查
列出发现的问题(如果没有发现问题,更严格地重新检查)
修复问题
重新验证受影响的幻灯片——一次修复往往会产生另一个问题
重复直到完整巡查不再发现新问题
至少要完成一轮修复+验证循环才能宣布成功。
---
转换为图片
将演示文稿转换为单张幻灯片图片供视觉检查:
python scripts/office/soffice.py --headless --convert-to pdf output.pptx
pdftoppm -jpeg -r 150 output.pdf slide
这会生成 slide-01.jpg、slide-02.jpg 等。
修复后重新渲染特定幻灯片:
pdftoppm -jpeg -r 150 -f N -l N output.pdf slide-fixed
---
依赖
pip install "markitdown[pptx]" - 文本提取
pip install Pillow - 缩略图网格
npm install -g pptxgenjs - 从零创建
LibreOffice (soffice) - PDF 转换(沙盒环境通过 scripts/office/soffice.py 自动配置)
Poppler (pdftoppm) - PDF 转图片