技能|规则文档Word交付法
适用场景
把一份 Markdown 规则/方案/报告转成正式 .docx 交付(用户长期规则:今年内凡出报告或方案,默认直接生成 WORD 版,并按归档规则存入对应目录,不另行询问格式)。触发词:出 Word、生成 docx、规则文档交付、方案排版。
操作步骤
- S1 创作:先写标准 Markdown 定稿(
stage1/final_draft.md),结构用「章-条-表」。 - S2 美化:生成带内联样式的 HTML(中文公文风格:标题层级、表格边框、页脚页码),落
stage2/。 - S3 转换:用官方 html-to-docx 转换器转 A4 纵向 docx,直接输出到目标目录:
python from html_to_docx import convert, ConvertOptions res = convert(html, output_path=OUT, options=ConvertOptions(page_size='A4', orientation='portrait')) print(res.success, res.docx_path, res.error, res.warnings) - 产物校验(不能只看文件存在):
python import docx; d = docx.Document(OUT) print('段落数', len(d.paragraphs), '表格数', len(d.tables)) # 并抽前 8 段非空文本核对
本次产出:34 段 + 2 表,零 warnings。 - 落位:按存储规则存入
PC服务器端\知识库系统开发目录(带版本号,如V1.0),并present_files打开预览。
注意边界
- 本机已知环境坑:插件 html-to-docx 的托管 venv(
<用户主目录>\.venv-html-to-docx)缺click与bs4,且无 pip 可补装(离线)。解法:换用本机另一个已具备docx/lxml/bs4/PIL的托管 venv(~/<运行时目录>/binaries/python/envs/default)去跑同一个转换器代码(把插件scripts目录加入 cwd 后 import),不要自己写兜底生成器。 - 若走 CLI(
-m html_to_docx convert)会因缺click失败,改用 Python API 绕过。 - 中文文件名在 Bash 传参时可能编码异常,尽量用
-c传 Python 代码 + 绝对路径。
反例避雷
| 反例 | 为什么错 | 正确做法 |
|---|---|---|
用 CLI 调 python -m html_to_docx convert |
插件 venv 缺 click |
改用 Python API |
| 缺 bs4 就自己写 docx 生成器 | 格式失控、不受控 | 换有完整依赖的 venv 跑官方转换器 |
| 只看文件大小就交付 | 内容可能空表/乱段 | 用 python-docx 回读段落数与表格数 |
| 落根目录不带版本号 | 版本混乱 | 文件名带 V1.0,旧版留一份 |