210 lines
6.1 KiB
Markdown
210 lines
6.1 KiB
Markdown
# .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 测试文档生成功能
|
||
- 确认模板可以正常使用
|