# 通用PPT自动生成工具 `PPT生成` `CodeBuddy` `模板分析` `Node.js` `演示文稿` # 通用 PPTX 生成器技能

CodeBuddy Skill Node.js 14+ pptxgenjs 许可证

一个强大的 CodeBuddy 技能,能够根据**任意用户指定的 PPT 模板**,结合提供的**图文素材**(文档、图片等),自动生成一份风格统一的演示文稿。 ## ✨ 核心功能 | 功能 | 描述 | |------|------| | 🎨 **模板分析** | 自动解析 PPTX 模板结构、配色、字体、背景图/背景色、对齐方式 | | 📄 **分页面类型分析** | 针对封面、目录、章节、内容、结束页分别提取背景和样式 | | 📝 **素材处理** | 从 DOCX/PDF/图片等素材中提取内容 | | 🎯 **智能排版** | 根据模板风格自动排版生成内容 | | 📊 **图表展示** | 支持柱状图、折线图、饼图、雷达图等多种数据可视化图表 | | 🔄 **批量生成** | 支持生成多页完整演示文稿 | ## 🚀 快速开始 ### 安装技能 1. 将 `SKILL.md` 文件复制到你的 CodeBuddy 项目的 `.codebuddy/skills/universal-pptx-generator/` 目录下 2. 在 CodeBuddy 中使用 `/universal-pptx-generator` 命令激活技能 ### 目录结构 ``` .codebuddy/ └── skills/ └── universal-pptx-generator/ └── SKILL.md ``` ## 📋 使用方法 ### 基本工作流程 ``` ┌─────────────────────────────────────────────────────────────┐ │ 通用 PPT 生成流程 │ ├─────────────────────────────────────────────────────────────┤ │ 1. 模板深度分析阶段(关键!) │ │ └── 解压 PPTX → 精确分析每页 XML → 提取字号/颜色/位置 │ │ │ │ 2. 素材处理阶段 │ │ └── 解析 DOCX/PDF → 提取文本/图片 → 结构化内容 │ │ │ │ 3. 内容规划阶段 │ │ └── 分析内容 → 设计结构 → 分配页面 │ │ └── ⭐ 识别数据 → 选择图表类型 → 准备图表数据 │ │ │ │ 4. PPT 生成阶段 │ │ └── 应用精确的模板参数 → 填充内容 → 生成图表 → 输出 PPTX │ │ │ │ 5. 清理阶段 │ │ └── 删除临时文件 → 保留最终 PPTX │ └─────────────────────────────────────────────────────────────┘ ``` ### 示例对话 ``` 用户: 帮我根据这个模板生成一份项目汇报PPT,素材在这个文档里 CodeBuddy: 好的,我来帮你生成PPT。让我先分析模板结构... [自动分析模板 XML,提取精确参数] [处理素材内容,规划页面结构] [生成完整 PPT 文件] ``` ## 🎯 支持的页面类型 | 页面类型 | 典型特征 | 背景处理方式 | |---------|---------|-------------| | **封面页(Cover)** | 主标题 + 副标题 + Logo | 背景图/渐变/斜切形状 | | **目录页(TOC)** | 目录列表 + 装饰元素 | 纯色背景 + 装饰形状 | | **章节页(Chapter)** | 大号章节编号 + 章节标题 | 纯色背景 + 装饰形状 | | **内容页(Content)** | 标题 + 正文/图片/图表 | 纯色背景/背景图 | | **结束页(Thanks)** | 感谢语 + 联系方式 | 纯色背景 + 装饰形状 | ## 📊 支持的图表类型 | 类型 | 说明 | 适用场景 | |------|------|---------| | 柱状图 | 垂直柱状图 | 分类对比 | | 横向柱状图 | 3D 柱状图 | 横向展示 | | 折线图 | 折线趋势图 | 时间序列趋势 | | 面积图 | 面积趋势图 | 累积数据展示 | | 饼图 | 饼状图 | 占比分析 | | 圆环图 | 环形图 | 带说明的占比 | | 雷达图 | 雷达/蜘蛛图 | 多维度对比 | | 散点图 | 散点图 | 相关性分析 | ## ⚠️ 核心原则 > **⭐⭐⭐ 每个模板都是独特的,必须针对性分析!** 不同 PPT 模板使用的字体、对齐方式、字号、颜色、位置、背景样式都完全不同。**绝不能**将一个模板的配置直接应用到另一个模板!每次使用新模板时,都必须重新分析 XML 提取精确参数。 ### 必须遵守的原则 1. **精确提取参数** —— 所有字号、位置、颜色必须从幻灯片 XML 中精确提取 2. **精确提取字体** —— 字体名称必须从 XML 精确提取 3. **精确提取对齐方式** —— 对齐方式必须从 `algn` 属性提取 4. **不要添加额外元素** —— 如果模板没有某元素,就不要添加 5. **保持布局一致** —— 位置和尺寸必须与模板匹配 6. **单位换算正确** —— sz ÷ 100 = pt,EMU ÷ 914400 = 英寸 ### 常见错误与正确做法 | 错误 | 正确做法 | |------|----------| | 使用推测的字号 | 从 XML 的 `sz` 属性精确提取 | | 使用默认字体 | 从 XML 精确提取字体名称 | | 使用错误的对齐方式 | 从 XML 的 `algn` 属性提取 | | 复制其他模板的配置 | 每个模板必须单独分析! | | 形状出现黑色边框 | 必须设置 `line: 'none'` | ## 🛠️ 技术依赖 - **Node.js** 14+ - **pptxgenjs** 3.x - **Python** 3.x(用于文件处理) ```bash npm install pptxgenjs ``` ## 📁 单位换算公式 ``` 字号:sz 值 ÷ 100 = pt 位置/尺寸:EMU ÷ 914400 = 英寸 百分比:英寸 ÷ 画布尺寸 × 100% 画布尺寸(16:9):20 × 11.25 英寸 ``` ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📄 许可证 MIT 许可证 —— 详见 [LICENSE](./LICENSE) 文件 ## 🙏 致谢 - [pptxgenjs](https://github.com/gitbrent/PptxGenJS) —— 强大的 JavaScript PPT 生成库 - [CodeBuddy](https://www.codebuddy.ai/) —— AI 编程助手