docs(详细设计): 新增Word回填导出设计
This commit is contained in:
67
docs/详细设计/skill/Word模板渲染Skill.md
Normal file
67
docs/详细设计/skill/Word模板渲染Skill.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# Word模板渲染Skill 设计
|
||||
|
||||
## 1. Skill 定位
|
||||
|
||||
`Word模板渲染Skill` 负责将回填字段集写入 Word 模板,生成新的 `.docx` 文件。
|
||||
|
||||
英文实现标识建议使用 `WordTemplateRenderSkill`。
|
||||
|
||||
## 2. 输入
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class WordTemplateRenderInput:
|
||||
template_file_path: Path
|
||||
fill_dataset: dict
|
||||
export_mode: str
|
||||
output_dir: Path
|
||||
```
|
||||
|
||||
## 3. 输出
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class WordTemplateRenderOutput:
|
||||
output_file_path: Path
|
||||
rendered_placeholders: list[str]
|
||||
render_warnings: list[dict]
|
||||
```
|
||||
|
||||
## 4. 核心方法
|
||||
|
||||
### 4.1 `run(input) -> WordTemplateRenderOutput`
|
||||
|
||||
主入口方法。
|
||||
|
||||
### 4.2 `replace_paragraph_placeholders(document, values) -> None`
|
||||
|
||||
替换段落占位符。
|
||||
|
||||
### 4.3 `replace_table_placeholders(document, values) -> None`
|
||||
|
||||
替换表格占位符。
|
||||
|
||||
### 4.4 `save_document(document, output_path) -> Path`
|
||||
|
||||
保存文档。
|
||||
|
||||
## 5. 技术实现
|
||||
|
||||
使用技术:
|
||||
|
||||
1. `python-docx`
|
||||
2. 可选 `docxtpl`
|
||||
3. Django Storage
|
||||
|
||||
## 6. 异常处理
|
||||
|
||||
1. 模板打不开:任务失败。
|
||||
2. 占位符替换失败:记录警告。
|
||||
3. 保存失败:任务失败。
|
||||
|
||||
## 7. 测试要点
|
||||
|
||||
1. 段落占位符可替换。
|
||||
2. 表格占位符可替换。
|
||||
3. 输出文件存在。
|
||||
|
||||
Reference in New Issue
Block a user