ai-business-write/技术文档/docx处理说明.md

210 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# .docx 文件处理说明
## 脚本说明
### process_templates_docx_only.py
这是一个专门处理已转换为 .docx 格式的模板文档的脚本。
**特点:**
- ✅ 只处理 .docx 文件,跳过 .doc 文件
- ✅ 不需要转换功能,直接处理已转换的文档
- ✅ 自动识别文档类型
- ✅ 智能添加占位符
- ✅ 保持原有目录结构
## 使用步骤
### 1. 确保文件已转换
确保所有需要处理的文档都已经转换为 .docx 格式,并放在 `模板/原始模板` 目录下。
脚本会自动查找所有子目录中的 .docx 文件,包括:
- `模板/原始模板/2-初核模版/1.初核请示/批量改格式_20251207182627/` 目录下的文件
- 其他任何子目录中的 .docx 文件
### 2. 运行脚本
```bash
python process_templates_docx_only.py
```
### 3. 检查结果
脚本会:
- 扫描所有 .docx 文件
- 识别文档类型
- 添加占位符
- 保存到 `模板` 文件夹(保持目录结构)
## 输出说明
### 处理成功
```
处理: 1.请示报告卡XXX_转自DOC.docx
类型: REPORT_CARD
输入: 模板\原始模板\2-初核模版\1.初核请示\批量改格式_20251207182627\1.请示报告卡XXX_转自DOC.docx
输出: 模板\2-初核模版\1.初核请示\1.请示报告卡XXX.docx
处理: 1.请示报告卡XXX_转自DOC.docx
✓ 处理成功,替换了 3 处占位符
```
### 无法识别类型
```
⚠ 无法识别文档类型: 某个文件.docx
路径: 模板\原始模板\...\某个文件.docx
```
### 处理失败
```
✗ 处理失败: [错误信息]
```
## 文件命名规则
脚本会自动清理文件名:
- 移除 `_转自DOC` 后缀
- 移除 `XXX``(XXX)``XXX` 等占位符标记
- 保持原有文件名核心部分
**示例:**
- `1.请示报告卡XXX_转自DOC.docx``1.请示报告卡XXX.docx`
- `2.初步核实审批表XXX_转自DOC.docx``2.初步核实审批表XXX.docx`
## 占位符处理逻辑
脚本会识别以下模式并添加占位符:
1. **字段名称: 具体值****字段名称: {{field_code}}**
- 例如:`被核查人姓名: 张三``被核查人姓名: {{target_name}}`
2. **字段名称: XXX/待填****字段名称: {{field_code}}**
- 例如:`被核查人姓名: XXX``被核查人姓名: {{target_name}}`
3. **表格中的字段**:同样处理表格单元格中的字段
## 支持的文档类型
脚本支持以下文档类型:
1. 请示报告卡 (REPORT_CARD)
2. 初步核实审批表 (PRELIMINARY_VERIFICATION_APPROVAL)
3. 初核方案 / 附件初核方案 (INVESTIGATION_PLAN)
4. 谈话通知书 (NOTIFICATION_LETTER)
5. 谈话笔录 (INTERVIEW_RECORD)
6. 谈话询问对象情况摸底调查30问 (INVESTIGATION_30_QUESTIONS)
7. 被谈话人权利义务告知书 (RIGHTS_OBLIGATIONS_NOTICE)
8. 点对点交接单 (HANDOVER_FORM)
9. 陪送交接单 (ESCORT_HANDOVER_FORM)
10. 保密承诺书 (CONFIDENTIALITY_COMMITMENT)
11. 办案人员-办案安全保密承诺书 (INVESTIGATOR_CONFIDENTIALITY_COMMITMENT)
12. 请示报告卡(初核报告结论) (REPORT_CARD_CONCLUSION)
13. 初核情况报告 (INVESTIGATION_REPORT)
14. 谈话审批表 (INTERVIEW_APPROVAL_FORM)
15. 谈话前安全风险评估表 (PRE_INTERVIEW_RISK_ASSESSMENT)
16. 谈话方案 (INTERVIEW_PLAN)
17. 谈话后安全风险评估表 (POST_INTERVIEW_RISK_ASSESSMENT)
## 文件结构
处理后的文件结构:
```
模板/
├── 2-初核模版/
│ ├── 1.初核请示/
│ │ ├── 1.请示报告卡XXX.docx ← 处理后的文件
│ │ ├── 2.初步核实审批表XXX.docx
│ │ └── 3.附件初核方案(XXX).docx
│ └── ...
└── ...
```
## 注意事项
1. **只处理 .docx 文件**
- 脚本会自动跳过 .doc 文件
- 如果还有 .doc 文件需要处理,请先转换为 .docx
2. **文件位置**
- 源文件:`模板/原始模板/` 目录下(包括所有子目录)
- 输出文件:`模板/` 目录下(保持相对目录结构)
3. **占位符检查**
- 处理后的模板需要人工检查
- 确保占位符格式正确:`{{field_code}}`
- 确保占位符位置合理
4. **文件名清理**
- 脚本会自动清理文件名中的转换标记
- 如果文件名不符合预期,可以手动调整
## 常见问题
### Q1: 某些文件没有被处理
**A:** 检查:
1. 文件是否是 .docx 格式(不是 .doc
2. 文件是否在 `模板/原始模板` 目录下
3. 文档类型是否被识别(查看输出日志)
### Q2: 占位符没有添加
**A:** 可能原因:
1. 文档中字段名称与映射表不匹配
2. 字段值已经是占位符格式
3. 字段值为空或特殊字符
**解决方案:**
- 检查文档内容
- 手动添加占位符
- 检查字段名称是否正确
### Q3: 文件名不正确
**A:** 脚本会自动清理文件名,如果不符合预期:
- 可以手动重命名输出文件
- 或者修改脚本中的文件名清理逻辑
## 与 process_templates.py 的区别
| 特性 | process_templates.py | process_templates_docx_only.py |
|------|---------------------|-------------------------------|
| 处理 .doc 文件 | ✅ 是(需要转换) | ❌ 否(跳过) |
| 处理 .docx 文件 | ✅ 是 | ✅ 是 |
| 需要 Word/COM | ✅ 是(用于转换) | ❌ 否 |
| 转换功能 | ✅ 有 | ❌ 无 |
| 适用场景 | 原始 .doc 文件 | 已转换的 .docx 文件 |
## 推荐使用场景
**使用 process_templates_docx_only.py 当:**
- ✅ 所有文件已经手动转换为 .docx 格式
- ✅ 不想处理 .doc 文件转换
- ✅ 只需要处理已转换的文档
**使用 process_templates.py 当:**
- ✅ 还有 .doc 文件需要自动转换
- ✅ 系统已安装 Microsoft Word 和 pywin32
- ✅ 需要完整的自动化流程
## 下一步
处理完成后:
1. **检查生成的模板**
- 打开处理后的模板文件
- 检查占位符是否正确添加
- 手动调整不正确的占位符
2. **运行初始化脚本**
```bash
python init_all_templates.py
```
- 上传模板到 MinIO
- 更新数据库配置
3. **测试文档生成**
- 使用 API 测试文档生成功能
- 确认模板可以正常使用