PPTX 演讲备注自动编辑:XML 映射陷阱与 AI Agent 解决方案
·
背景
做 PPT 最耗时的不是做幻灯片,是写演讲备注。30 页的汇报 PPT 做完了,备注栏全是空的。手动写一遍 3-4 小时,用 python-pptx 写脚本也得 1-2 小时(含调试)。
市面 300+ 个 AI PPT 工具都在做"创建幻灯片",几乎没有专注编辑演讲备注的。于是我做了 pptx-notes-editor——一个专门通过 XML 直接编辑 PPTX 演讲备注的 AI Agent Skill。
PPTX 文件结构
PPTX 本质上是 ZIP 压缩包,内部由 XML 文件组成(ECMA-376 标准):
pptx-unpacked/
├── ppt/
│ ├── slides/ # 幻灯片
│ │ ├── slide1.xml
│ │ └── _rels/ # 关键:映射关系文件
│ │ └── slide1.xml.rels
│ ├── notesSlides/ # 备注文件
│ │ ├── notesSlide1.xml
│ │ └── notesSlide2.xml
│ └── _rels/
│ └── presentation.xml.rels
└── [Content_Types].xml
备注文本在 <a:t> 标签中(DrawingML 命名空间),和幻灯片文本结构相同。
notesSlide 编号陷阱(重要!)
notesSlide3.xml 不一定是第 3 页的备注! 这是几乎所有 PPTX 开发者都会踩的坑。
PPTX 的增量编辑机制会导致编号空洞或错位。真正的映射关系在 ppt/slides/_rels/slideN.xml.rels 中:
<!-- slide5.xml.rels 的内容 -->
<Relationship Id="rId2"
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide"
Target="../notesSlides/notesSlide3.xml"/>
即第 5 页幻灯片对应 notesSlide3.xml。直接按编号改会改错页。
自动检测脚本:
for f in pptx-unpacked/ppt/slides/_rels/slide*.xml.rels; do
slide=$(basename "$f" .xml.rels)
notes=$(grep -o 'notesSlide[0-9]*.xml' "$f" | head -1)
[ -n "$notes" ] && echo "$slide -> $notes"
done
XML 特殊字符处理
备注中的特殊字符必须正确转义:
| 字符 | XML 转义 | 说明 |
|---|---|---|
& |
& |
必须转义 |
< |
< |
必须转义 |
> |
> |
建议转义 |
" |
" |
属性中使用时必须转义 |
pptx-notes-editor 核心流程
先通读全 PPT 再动笔。 理解整体叙事结构后逐页设计备注,避免上下文不连贯。
四种备注风格:
- 叙事风格(对外汇报、投资人演示):口语化,有起承转合
- 精简要点(内部周会):关键信息提炼
- 逐字稿(重要演讲):完整讲稿,可直接朗读
- 自定义(特殊需求):按描述生成
与 python-pptx 对比
| 维度 | python-pptx 脚本 | pptx-notes-editor |
|---|---|---|
| 编程要求 | 需要 Python | 无,自然语言 |
| 映射检测 | 需自己实现 | 自动检测 |
| 上下文分析 | 不支持 | 先通读全 PPT |
| 交互确认 | 不支持 | 逐页确认 |
| 备注导出 | 需额外编码 | 一键导出 Markdown |
安装
# Claude Code
mkdir -p ~/.claude/skills/pptx-notes-editor && curl -fsSL https://raw.githubusercontent.com/cm8421/pptx-notes-editor/main/SKILL.md -o ~/.claude/skills/pptx-notes-editor/SKILL.md
# OpenClaw
/skill install @cm8421/pptx-notes-editor
FAQ
Q:会改幻灯片吗?
A:不会。只修改 ppt/notesSlides/ 下的 XML,不碰幻灯片内容。
Q:需要联网吗?
A:不需要。全部本地操作,不上传文件。
Q:支持 WPS 和 Google Slides 导出的 PPTX 吗?
A:支持。任何 ECMA-376 标准的 PPTX 都可以。
更多推荐

所有评论(0)