名称: pptx 描述: “使用此技能任何时间涉及.pptx文件 — 作为输入、输出或两者。这包括:创建幻灯片、演示文稿;读取、解析或从任何.pptx文件提取文本(即使提取的内容将用于其他地方,如电子邮件或摘要);编辑、修改或更新现有演示文稿;合并或拆分幻灯片文件;使用模板、布局、演讲者笔记或评论。每当用户提到"deck," "slides," "presentation," 或引用.pptx文件名时触发,无论他们计划如何使用内容。如果需要打开、创建或接触.pptx文件,使用此技能。” 许可证: 专有。LICENSE.txt有完整条款
PPTX 技能
快速参考
| 任务 | 指南 |
|---|---|
| 读取/分析内容 | python -m markitdown presentation.pptx |
| 编辑或从模板创建 | 阅读 editing.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 视为错误狩猎,而不是确认步骤。如果在第一次检查中未找到任何问题,你观察得不够仔细。
内容 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 到图像