feat(export): add server-side AI export
Build, Push and Deploy / build (push) Failing after 6m44s
Build, Push and Deploy / deploy (push) Skipped

This commit is contained in:
lai_hong
2026-09-13 13:01:34 +08:00
parent 0877ae73e8
commit 7a506114a2
12 changed files with 632 additions and 3 deletions
+17
View File
@@ -211,6 +211,23 @@ SSE 事件流。事件数据模型:
| `ring_width` | `1` | 环线宽 |
| `ring_spacing` | `8` | 环间距 |
### POST `/api/exports/ai`
将应用生成的 SVG 转换为 Illustrator 5 兼容的 `.ai` 文件。该接口仅转发到 Compose 内部的 `ai-converter` 服务,不暴露转换容器端口。
请求体:
```json
{
"svg": "<svg ...>...</svg>",
"filename": "wordcloud.ai"
}
```
- 最大 SVG 大小:25 MB。
- 当前支持路径、`rect``circle``ellipse``line`、纯色填充/描边和仿射变换。
- 不支持图片、普通文字、SVG 图案/裁剪/透明效果时会返回 `422`,不会产生可能失真的 AI 文件。
## Templates
### GET `/api/templates`
+10 -2
View File
@@ -57,7 +57,7 @@ TemplateHome(首页)
- **层级调整**:上移、下移
- **删除**:删除元素
- 右侧面板支持修改画布宽高、背景色
- 支持导出总图 SVG、清空画布
- 支持导出总图 SVG、AI(受支持元素)、清空画布
- **图层管理**:支持图层可见性、锁定、文件夹分组
- **吸附对齐**:元素拖拽时自动吸附到附近元素边缘
- **缩放**:编辑视图可缩放(不影响导出尺寸)
@@ -73,6 +73,14 @@ TemplateHome(首页)
- 基础形状输出为原生 SVG 的 `<rect>``<ellipse>``<line>`
- 元素的位移和旋转写入 SVG `transform`,透明度写入 `opacity`
## AI 导出
"导出总图 AI"先按同一画布模型生成 SVG,再提交到后端 `/api/exports/ai`,由 Docker Compose 内部的 `ai-converter` 转换为 Illustrator 5 兼容 `.ai` 文件。
- 支持路径、矩形、椭圆、圆、线条、纯色填充/描边和仿射变换。
- 图片贴纸、普通文字、透明度、SVG pattern/clipPath 等不保证保真的特性会明确失败,不会静默生成错误文件。
- 词云本体由后端输出为路径,适合作为 AI 导出主场景。
## ZIP 导出
支持导出含以下内容的 ZIP 包:
@@ -98,5 +106,5 @@ TemplateHome(首页)
- 当前没有服务端素材库、项目文件格式或协作编辑接口(Projects 接口存在但服务层级较浅)
- SVG 导入按用户信任文件处理;编辑器预览使用图片方式加载,不在页面中直接执行 SVG 内容
- 当前缩放只影响编辑视图,不改变导出尺寸
- 当前导出目标是 SVG;没有在画布页实现 PNG/JPG 总图导出
- 画布页总图支持 SVG 和受支持元素的 AI;没有实现 PNG/JPG 总图导出
- 线距分析结果显示在元素属性面板中,辅助激光加工参数设定