Generate DOCX — 生成 DOCX
v4.1将大模型生成或修改的内容,按照对应中文文档排版国家标准与行业规范, 输出为格式严格正确的 Word (.docx) 文档。 支持 19 种文档类型,依据《Word文档类型与风格指南》全量实现所有排版规范, 包括党政公文、商业文档、学术论文、技术文档、医疗文档、营销策划、 法律文书、金融报告、工程文档等。 v4.1 架构:Markdown 语义层 + Pandoc 渲染引擎 + 14 个专属模板, 从根本上解决编号累加、标题污染、代码缩进、首页页码等顽固问题。 跨平台兼容 Windows / macOS / Linux,自动适配系统字体。 触发条件:用户要求"导出 Word"、"生成 docx"、"输出文档"、"按规范排版"等。
运行时依赖
安装命令
点击复制技能文档
DOCX 规范输出 技能 v4.1 架构说明 AI → Markdown(语义层) → Pandoc(渲染引擎)+ reference.docx 模板(14个,存储排版规范) → .docx 输出
三大保障: 编号正确 — Pandoc 对每个独立列表块天然从1计数,无需 hack 样式稳定 — 字体/字号/行距在模板中预定义,Word 原生渲染 缩进保留 — Pandoc fenced code block 完整保留所有空白
文件结构 docx-输出/ ├── 技能.md ← 本文件 ├── 转换器.py ← 核心转换器 ├── build_templates.py ← 模板构建脚本(首次或修改规范时运行) └── templates/ ← 14 个 reference.docx 模板 ├── template_GOV_DOC.docx ├── template_GOV_JUDICIAL.docx ├── template_BUSINESS_CONTRACT.docx ├── template_BUSINESS_TENDER.docx ├── template_BUSINESS_PLAN.docx ├── template_ACADEMIC_PAPER.docx ├── template_ACADEMIC_LESSON.docx ├── template_TECH_MANUAL.docx ├── template_MEDICAL_DOC.docx ├── template_MARKETING_DOC.docx ├── template_LEGAL_DOC.docx ├── template_FINANCE_报告.docx ├── template_ENGINEERING_DOC.docx └── template_GENERAL_DOC.docx
第一步:环境检查与初始化 pandoc --version # 需要 Pandoc >= 2.0 # 安装:macOS: brew 安装 pandoc | Ubuntu: sudo apt 安装 pandoc # Windows: choco 安装 pandoc 或 https://pandoc.org
python3 -c "导入 docx" || pip 安装 python-docx --break-系统-packages
# 首次部署,构建所有模板 python3 /path/to/技能/build_templates.py
第二步:文档类型选择(19种) doc_type 场景 模板 序号风格 GOV_DOC 党政机关公文(通知/报告/决定) GOV_DOC 一、(一)1.(1)四级 GOV_JUDICIAL 司法文书 GOV_JUDICIAL 一、(一)1. GOV_DIPLOMATIC 外交照会 GOV_JUDICIAL 一、(一)1. BUSINESS_CONTRACT 合同/协议 BUSINESS_CONTRACT 一、(一)1. BUSINESS_TENDER 标书/投标文件 BUSINESS_TENDER 一、(一)1. BUSINESS_PLAN 商业计划书/创业计划书 BUSINESS_PLAN 一、(一)1. ACADEMIC_PAPER 学术论文/研究报告 ACADEMIC_PAPER 一、(一)1. ACADEMIC_LESSON 教案/教学大纲 ACADEMIC_LESSON 一、(一)1. TECH_SRS 软件需求规格说明书 TECH_MANUAL 1. 1.1 1.1.1 TECH_MANUAL 用户手册/操作指南 TECH_MANUAL 1. 1.1 1.1.1 MEDICAL_RECORD 病历/医疗记录 MEDICAL_DOC 一、(一)1. MEDICAL_DRUG 药品说明书 MEDICAL_DOC 【模块名称】 MARKETING_PLAN 营销策划案 MARKETING_DOC 一、(一)1. MARKETING_ANALYSIS 市场分析报告 MARKETING_DOC 一、(一)1. LEGAL_OPINION 法律意见书 LEGAL_DOC 一、(一)1.(1)四级 LEGAL_LITIGATION 律师文书/诉状 LEGAL_DOC 一、(一)1.(1)四级 FINANCE_报告 金融/财务报告 FINANCE_报告 一、(一)1. ENGINEERING_DOC 工程文档/项目方案 ENGINEERING_DOC 1. 1.1 1. GENERAL_DOC 通用商务文档(兜底) GENERAL_DOC 一、(一)1. 第三步:各类型排版规范速查 GOV_DOC — 党政机关公文(GB/T 9704-2012) 页边距:上3.7 下3.5 左2.8 右2.6(cm) 标题:二号宋体(模拟小标宋),居中,不加粗 正文:三号仿宋,固定行距28磅(每页22行/每行28字) 序号:一、(一)1.(1)四级,第四级用 h4() 英文:Times New Roman 页码:首页不显示(模板已设置)
BUSINESS_TENDER — 标书/投标文件 页边距:上2.6 下2.2 左右2.5(cm) 封面/目录:三号加粗微软雅黑(本类型专属字体) 正文:小四号宋体,1.5倍行距 英文:Calibri
ACADEMIC_PAPER — 学术论文 页边距:上下2.5 左3.1 右3.2(cm) 标题:三号仿宋,前空三行后空两行,居中 摘要:小四号仿宋,1.25倍,左右缩进2字符 → abstract() 关键词:小四号仿宋,另起一行 → abstract(keywords=...) 一级标题:四号黑体,前后空一行 二级标题:小四号楷体 正文:五号宋体,1.25倍,首行缩进2字符 引文脚注:小五号,悬挂缩进1字符 → footnote_ref() 图题:五号仿宋,置图下方,自动编号 → figure_caption() 表题:五号仿宋,置表上方,自动编号 → table(caption=...) 英文:Times New Roman
TECH_MANUAL — 用户手册/操作指南 页边距:上下2.5 左右2.5(cm) 封面:四号黑体,居中 一级标题:小四号黑体,1. 格式,左对齐 二级标题:小四号宋体加粗,1.1 格式 步骤说明:项目符号列表 → bullet() 警告提示:红色加粗 ⚠ → 警告() 代码块:Courier New,灰底,保留缩进 → code_block(lang="python") 正文:五号宋体,不缩进 英文:Calibri
MEDICAL_DRUG — 药品说明书 模块标题:【药品名称】【作用与用途】等 → 模块_heading() 警示语:黑体加粗红色突出 → 警告() 正文:小四号宋体,1.5倍行距 英文:Times New Roman
LEGAL_DOC — 法律文书 页边距:上下2.54 左右3.17(cm) 序号:一、(一)1.(1)严格四级 引用法条:楷体,加「」引号 → quote() 落款:仿宋四号居中 → 签名ature_block() 英文:Times New Roman
FINANCE_报告 — 金融/财务报告 正文:四号宋体,固定行距28磅 数据表格:关键数据加粗 → table(bold_rows=[0,1,...]) 配色:主色深蓝#2F5496,辅色浅灰,点缀橙色 英文:Times New Roman
第四步:生成脚本模板 """生成_doc.py""" 导入 sys, os sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from 转换器 导入 Docx转换器
c = Docx转换器("TECH_MANUAL") # ← 替换为实际类型
# 标题 c.title("文档主标题") c.subtitle("副标题(可选)")
# 标题层级(auto_number=True 智能防双重编号) c.h1("章节一") # → "1. 章节一" 或 "一、章节一"(按类型) c.h2("子章节") # → "1.1 子章节" 或 "(一) 子章节" c.h3("三级标题") # → "1.1.1" 或 "1." c.h4("四级标题") # → "(1) 四级标题"(公文/法律类型)
# 已含序号不重复编号 c.h1("一、已有序号章节") # 检测到已有序号,直接输出不加前缀
# 正文(支持 Markdown 内联)
c.body("正文段落,支持 加粗 斜体 代码。")
# 编号列表(换章节自动重置) c.numbered("第一项") # → 1 c.numbered("第二项") # → 2 c.h1("新章节") c.numbered("又一项") # → 1(自动重置!) c.bullet("项目符号一") c.bullet(" - 子项", level=1)
# === 专属 API ===
# 学术摘要 c.abstract("摘要内容...", keywords="关键词1;关键词2")
# 脚注引用 c.footnote_ref("正文内容", "脚注:作者.书名.出版社,年份.")
# 药品说明书模块标题 c.模块_heading("药品名称")
# 警告提示 c.警告("此操作不可逆,请谨慎执行!")
# 图题(自动编号,置图下方) c.figure_caption("系统架构示意图")
# 表格(表题置上,自动编号;数值列自动右对齐) c.table( headers=["指标", "方法A", "数值"], rows=[["准确率","92.3%","0.923"],["召回率","88.7%","0.887"]], caption="性能对比", bold_rows=[0] # 第一行加粗(金融报告关键数据) )
# 引用/法条 c.quote("《民法典》第X条:相关法律条文内容。")
# 落款 c.签名ature_block("甲方:___________", "日期:___年___月___日")
# 代码块(缩进完整保留) c.code_block("""导入 torch class 模型(torch.nn.模块): def __init__(self): super().__init__() self.fc = torch.nn.Linear(10, 1)""", lang="python")
# 目录条目 c.toc_entry("一、章节一", "1") c.toc_entry("1.1 子章节", "2", level=2)
# 其他 c.highlight("重点内容") # 点缀色高亮 c.divider() # 分隔线 c.page_break()