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

6.1 KiB
Raw Blame History

.docx 文件处理说明

脚本说明

process_templates_docx_only.py

这是一个专门处理已转换为 .docx 格式的模板文档的脚本。

特点:

  • 只处理 .docx 文件,跳过 .doc 文件
  • 不需要转换功能,直接处理已转换的文档
  • 自动识别文档类型
  • 智能添加占位符
  • 保持原有目录结构

使用步骤

1. 确保文件已转换

确保所有需要处理的文档都已经转换为 .docx 格式,并放在 模板/原始模板 目录下。

脚本会自动查找所有子目录中的 .docx 文件,包括:

  • 模板/原始模板/2-初核模版/1.初核请示/批量改格式_20251207182627/ 目录下的文件
  • 其他任何子目录中的 .docx 文件

2. 运行脚本

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.docx1.请示报告卡XXX.docx
  • 2.初步核实审批表XXX_转自DOC.docx2.初步核实审批表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. 运行初始化脚本

    python init_all_templates.py
    
    • 上传模板到 MinIO
    • 更新数据库配置
  3. 测试文档生成

    • 使用 API 测试文档生成功能
    • 确认模板可以正常使用