96 lines
2.9 KiB
Markdown
96 lines
2.9 KiB
Markdown
# 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
|