# html2pptx
HTML / 截图 → 标准 JSON → 可编辑 PPTX
将任何格式的演示文稿描述转化为**文字可编辑、布局可还原**的 PPTX 文件。
## 架构
```
输入(任意来源) 中间层 输出
━━━━━━━━━━━━━━━ ━━━━━━━━━━━ ━━━━━
AI 生成的描述 标准 JSON PPTX 文件
HTML 提取的结构 → Schema 校验 → pptxgenjs 渲染
多模态识别结果 ↓
Markdown / 其他 翻译引擎(机械映射)
```
### 三层结构
| 层 | 目录 | 说明 |
|---|------|------|
| **知识库** | `reference/` | pptxgenjs 完整参数表,每个参数的类型/取值范围/默认值。给 AI 用的操作手册 |
| **Schema** | `schema/` | JSON Schema 定义 + 示例。AI 输出符合此 Schema 的 JSON 即可驱动 PPT 生成 |
| **翻译引擎** | `renderer/` | JSON → pptxgenjs API 调用的机械映射。不做逻辑判断,只做参数透传 |
## 快速开始
```bash
npm install
```
### 从 JSON 生成 PPTX
```javascript
const { render } = require('./renderer/index');
const pptx = render(jsonObject);
pptx.writeFile({ fileName: 'output.pptx' });
```
### 从 JSON 文件生成
```javascript
const { renderFile } = require('./renderer/index');
renderFile('./schema/examples/ui-dashboard.json', 'output.pptx');
```
## 目录结构
```
reference/ ← 知识库:每个元素的完整参数表
text.md 文字参数
shape.md 形状参数
table.md 表格参数
image.md 图片参数
chart.md 图表参数
slide.md 页面参数
master.md 母版参数
output.md 输出参数
coordinate.md 坐标换算
schema/ ← JSON Schema 定义
presentation.schema.json
examples/
basic.json 基础示例(2页)
full.json 全功能示例
ui-dashboard.json UI 看板示例
ui-advanced.json 精细化 UI 示例
renderer/ ← 翻译引擎
index.js 主入口
text-renderer.js 文字渲染
shape-renderer.js 形状渲染
table-renderer.js 表格渲染
image-renderer.js 图片渲染
chart-renderer.js 图表渲染
slide-renderer.js 页面属性
PPTXGENJS_API.md ← pptxgenjs v4.0.1 完整 API 参考
```
## 设计原则
- **翻译引擎是纯机械映射** — 不做样式推断,不做逻辑判断。JSON 里有什么就画什么
- **Schema 是 AI 友好** — 字段名直观,不暴露 pptxgenjs 内部命名
- **知识库是完整参考** — 每个参数都有类型+取值范围+默认值,不需要 AI 去猜
## 依赖
| 包 | 用途 |
|---|------|
| pptxgenjs | 生成 PPTX 文件(OOXML) |
## License
MIT