根据论文或汇报内容生成多页 Draw.io 格式 PPT,支持论文答辩与通用汇报两种模式,自动导出为 .pptx。当用户提到论文答辩 PPT、答辩幻灯片、通用 PPT、汇报 PPT、根据模板生成 PPT、drawio2pptx 时使用。
本 skill 支持两种模式,共用 ppt_template/、scripts/、reference/ 目录,以及 Step 0 自定义模板、Step 1 确定内容与风格、Step 3 & 4 输出与导出 全流程。
| 模式 | 使用时机 | 内容来源 | 默认页序 | 输出文件 |
|---|---|---|---|---|
| 论文答辩 | 学位论文答辩、开题、预答辩 | paper-write 结构化提取 | 封面→目录→背景→现状→方法→创新点→实验→结论→致谢→Q&A | paper-defense.drawio |
| 通用汇报 | 工作汇报、产品介绍、演讲 | 用户消息提取/生成 | 封面→目录→节标题→内容页→总结→致谢→Q&A | general-presentation.drawio |
若用户提供了自己的 .pptx 模板文件:
.pptx 放入 ppt_template/ 目录python scripts/analyze_pptx.py ppt_template/xxx.pptx reference/style-custom.md
reference/style-custom.md 作为「自定义风格」继续目录约定:ppt_template/ 存放模板、scripts/analyze_pptx.py 样式提取、reference/ 风格文件
两种模式均可选择以下风格之一,读取对应 reference 文件获取配色、字体、版式规则与 XML 样式片段:
| # | 风格 | 主色 | 强调色 | reference 文件 |
|---|---|---|---|---|
| 1 | 经典学术 / 商务严谨 | #1B2A4A | #C9A84C | reference/style1-classic-academic.md |
| 2 | 现代极简 / 大字报感 | #231F20 | #F5C638 | reference/style2-minimal-bigtype.md |
| 3 | 暖色学术 / 亲和力 | #2C5160 | #B7472A | reference/style3-warm-academic.md |
| 4 | 科技明快 / 现代前沿 | #0170C1 | 同主色 | reference/style4-tech-modern.md |
| 5 | 自定义 | 从 style-custom.md 提取 | reference/style-custom.md |
必须先读取所选风格的 reference 文件,基于该风格生成 XML。
当用户选择论文答辩模式、且未另行指定页数时,所有风格(style1–4)默认采用统一的 23 页结构:
各 reference/styleX-*.md 只定义样式与版式(颜色、字体、组件布局),不再重复定义页序;如需修改默认页序,应在本 SKILL 中统一调整。
defense-style4-tech.drawio、defense-style4-tech.pptx.drawio(源文件)→ 执行命令导出 .pptx(交付文件)→ 校验页数.pptx(必要时附 .drawio),不需要安装 Python;脚本/代码仅用于生成端自动写 XML(可选)。生成每一页 XML 前,按下面 checklist 快速自检(只保留高频致命项):
<mxfile>,且每页一个 <diagram>(否则导出会变 1 页)。<diagram> 内 x 从 0 开始;背景矩形 x=0,y=0,w=1920,h=1080;每页都有 mxCell id="0" 与 mxCell id="1" parent="0"。mxCell id 必须唯一;每个 <diagram id="..."> 也必须唯一。.drawio 必须一次写完整(不要多次覆盖/拼接 XML)。drawio2pptx 输出的 (N slides) 必须等于 <diagram> 数量。\n 拼接,再一次性写入文件),禁止在 value="..." 中写 
 / <br> / <font>/<b>,也禁止通过 Shell 将 &#xa; 替换成字面量 `n;文本 style 必含 whiteSpace=wrap;html=1;。fontColor=#FFFFFF;背景色替换优先改 fillColor,不要全局替换所有 #FFFFFF。<mxfile host="app.diagrams.net">
<diagram id="p1" name="封面">
<mxGraphModel page="1" pageWidth="1920" pageHeight="1080">
<root>
<mxCell id="0"/><mxCell id="1" parent="0"/>
</root>
</mxGraphModel>
</diagram>
<diagram id="p2" name="目录">
<mxGraphModel page="1" pageWidth="1920" pageHeight="1080">
<root>
<mxCell id="0"/><mxCell id="1" parent="0"/>
</root>
</mxGraphModel>
</diagram>
</mxfile>
将生成的 XML 一次性 写入工作区 .drawio 文件(论文答辩用 paper-defense.drawio,通用汇报用 general-presentation.drawio),并简述每页概要。
写入方式需满足 checklist 第 4 条「一次性写入」与第 7 条「换行只用真实换行」的要求。
生成 .drawio 后,执行导出(推荐在生成端完成导出后再交付):
pip install drawio2pptx -q.drawio 文件所在目录(必须先 cd/Set-Location,否则找不到文件):
Set-Location "d:\你的项目目录"
drawio2pptx <文件名>.drawio <文件名>.pptx
Saved xxx.pptx (N slides),且 (N) 等于 <diagram> 数量(对应 checklist 第 5 条「页数校验」)页数验证需满足 checklist 第 5 条「页数校验」。
.pptx 正在被 PowerPoint 占用。
*-v2.pptx),或先关闭 PPT 再覆盖导出。&→&,<→<)tail 命令,Shell 输出截断请用 PowerShell 的 Select-Object -Last N 替代37:["$","$L3e",null,{"content":"$3f","frontMatter":{"name":"pptgen-drawio","description":"根据论文或汇报内容生成多页 Draw.io 格式 PPT,支持论文答辩与通用汇报两种模式,自动导出为 .pptx。当用户提到论文答辩 PPT、答辩幻灯片、通用 PPT、汇报 PPT、根据模板生成 PPT、drawio2pptx 时使用。"}}]