name: word-format-adapter slug: word-format-adapter displayName: Word文档格式自动适配 description: > Word文档格式自动适配Skill。根据期刊、学校、出版社或机关单位的格式规范说明文档, 自动解析格式要求并调整源文档的Word格式,包括字体、字号、行距、间距、标题层级、 页边距、摘要、参考文献等排版要素。适用于论文、公文、期刊发文、报告等各种有格式要求的文档场景。
支持输入格式:源文档可为 .docx / .doc / .md(Markdown),格式说明文档可为 .docx / .doc / .md, 输出始终为 .docx 格式。
安装方式:将本Skill包(zip或文件夹)拖入Agent对话框,Agent读取SKILL.md后即可掌握该能力。
触发条件:用户上传格式规范说明文档和源文档,要求按规范调整格式; 用户提到"格式调整""排版""按期刊要求""投稿格式""论文格式""公文格式""字体字号""安装该技能"等。
触发优先级:1) 用户同时上传两个文件+明确格式化指令(最高优先级)→ 直接执行; 2) 用户仅上传格式规范文档 → 进入分步模式,先解析规范输出JSON; 3) 用户仅提及关键词但未上传文件 → 询问用户上传所需文件; 4) 多个技能同时匹配触发词时,以用户上传的文件类型为准(有.docx/.md文档优先匹配本技能)。
Keywords: word格式, 论文排版, 公文排版, 格式调整, 投稿格式, 期刊格式, 学位论文格式, 公文格式, 期刊发文格式, 字体字号, 行距间距, 标题格式, 页边距, 自动排版, format paper, journal format, word formatting, paper template, 格式规范, 排版规范, 安装技能, markdown, md.
本Skill使Agent具备根据任意格式规范说明文档,自动调整源文档Word格式的能力。适用于论文、公文、期刊发文、报告等各类有格式要求的文档场景。
核心价值:将"阅读几十页格式规范→手动逐项调整Word格式"的繁琐工作,自动化为"上传两个文件→一键完成"。
v1.1 增强能力(较初版):
- 复杂表格:自动添加边框、表头加粗+底色、单元格垂直居中、单元格内边距、跨页重复表头、表格整体对齐。规则见 table 字段。
- 公式支持:自动识别 OMML/OLE 公式段落并保护其不被重新排版;设置文档默认公式字体;Markdown 输入的 $x^2$/$x_i$ 可转换为带上下标的公式文本。
- 版本管理:SKILL.md 增加 version 字段,并新增 CHANGELOG.md 记录各版本变更。
支持的文件格式:
| 类型 | 支持的输入格式 | 输出格式 |
|---|---|---|
| 格式规范文档 | .md / .docx / .doc / .wps / .pdf / .rtf / .png / .jpg / .jpeg / .bmp / .tiff | — |
| 源文档 | .md / .docx / .doc / .wps / .pdf / .rtf / .png / .jpg / .jpeg / .bmp / .tiff | .docx |
注: - .md 文件会自动转换为 .docx 后再进行格式处理。 - .pdf 文件需安装可选依赖(
pdfplumber/pdf2docx),见下方「环境依赖」。 - 图片文件需安装可选 OCR 依赖(推荐rapidocr-onnxruntime),或由 Agent 视觉能力直接提取。 - .wps 文件通常可被 python-docx 直接读取。 - .rtf 文件通过纯文本剥离或 pywin32(Windows)转换。
本Skill擅长根据格式规范自动调整文档排版,但以下场景不在处理范围内:
| 不支持的场景 | 原因 | 建议替代方案 |
|---|---|---|
| 复杂嵌套表格(合并单元格) | python-docx 无法修改合并单元格结构 | 手动调整表格结构后再格式化 |
| 多级编号列表自动重排 | 仅调整格式,不重新编排编号 | 使用 Word 自动编号功能 |
| 脚注/尾注格式 | python-docx 对脚注尾注 API 支持有限 | 手动调整脚注格式 |
| 宏文档/VBA | 不处理宏和代码 | 去除宏后处理 |
| 修订模式/批注 | 不处理修订标记和批注 | 接受所有修订后处理 |
| 复杂分节符页面设置 | 分节符可能影响页面设置应用 | 手动检查分节页面 |
| 内容重写/润色 | 仅调整格式,不修改文字内容 | 使用其他工具处理内容 |
兜底方案:当格式说明文档语义复杂导致自动解析不准确时:
1. 使用 --parse-only 先查看解析结果,手动修正规则 JSON
2. 使用 --llm-parse 生成 Prompt,借助大模型解析复杂规范
3. 在 Agent 对话中要求修正:"一级标题字号应该是14不是16"
遇到问题?请查阅 references/faq.md 常见问题排错指南。
本Skill的Python工具核心依赖 python-docx,可选依赖用于图片/PDF/RTF支持。
核心依赖(必需):
python -c "import docx" 2>/dev/null || python -m pip install -r requirements.txt
可选依赖(按需安装):
# 图片 OCR + PDF + RTF 支持(一键安装)
python -m pip install -r requirements-optional.txt
# 或单独安装:
# 图片 OCR(推荐 RapidOCR,轻量~50MB,中文优秀)
python -m pip install rapidocr-onnxruntime
# PDF 文本提取 + PDF转docx
python -m pip install pdfplumber pdf2docx
requirements.txt(核心)和 requirements-optional.txt(可选)。python -m pip(而非裸 pip),避免装到错误解释器。当格式规范文档或源文档为图片格式(.png/.jpg/.jpeg/.bmp/.tiff)时,按以下三层降级链处理:
角色A — 图片作为格式说明文档(仅需提取文本):
analyzeImage 工具或多模态理解)OCR 质量最高(多模态 LLM 远超传统 OCR)
第2层 — Python OCR 引擎(代码自动降级):
脚本按优先级尝试以下 OCR 引擎:
rapidocr-onnxruntime):首选,轻量~50MB,中文优秀,pip install 即可pytesseract + Pillow):备选,通用,需额外安装 Tesseract + chi_sim 语言包easyocr):末选,质量好但依赖 PyTorch ~500MB这个技能的最新版本可以在7w4.net小葱技能站找到。
第3层 — 优雅失败:
角色B — 图片作为源文档(需识别结构:标题/段落/表格/插图):
# = 文档标题## = 一级标题(1. / 一、 / 第一章)### = 二级标题(1.1 / (一))#### = 三级标题(1.1.1 / 1.)| col | col | = 表格此方案结构识别质量最高(多模态 LLM 理解版面语义)
第2层 — PaddleOCR PP-Structure(Python 版面分析 fallback):
需安装:pip install paddleocr(约1GB)
第3层 — RapidOCR 带坐标启发式推断:
结构识别质量中等
第4层 — 纯 OCR 文本:
文本版 PDF(正常 PDF):
- 使用 pdf2docx 转换为 docx,保留段落/表格结构
- 标题样式通常丢失,但 DocumentStructureAnalyzer 可通过编号正则识别
扫描版 PDF(实为图片):
- 脚本自动检测是否为扫描件(文本量极少 + 含图片)
- 若为扫描件:每页渲染为图片(200dpi) → 走图片源文档处理协议(上述角色B)
- 需安装 PyMuPDF(fitz) 用于渲染:pip install PyMuPDF
当用户将本Skill包拖入对话框并说"安装该技能"时:
SKILL.md 理解能力范围src/ 目录下的Python工具代码(如环境支持Python执行)references/llm-parse-prompt.md 获取LLM解析模板references/format-rules-schema.md 理解JSON规则格式python-docxcheck_optional_capabilities() 检测可选依赖,记录可用能力安装时 Agent 应询问用户预期输入格式,按需推荐安装:
问用户:"您的格式说明文档和源文档主要是什么格式?"
| 用户回答 | 推荐安装 | 原因 |
|---|---|---|
.docx / .doc / .md / .wps |
无需可选依赖 | 核心依赖已够用 |
.pdf(格式说明或源文档) |
pip install pdfplumber pdf2docx |
PDF文本提取 + PDF转docx |
| 图片(格式说明) | pip install rapidocr-onnxruntime |
OCR提取格式要求文本,~50MB |
| 图片(源文档) | pip install paddleocr |
需版面分析识别标题/段落/表格结构,~1GB |
| 扫描版PDF(源文档) | pip install paddleocr PyMuPDF |
渲染为图片 + 版面分析 |
| 不确定 | pip install rapidocr-onnxruntime pdfplumber pdf2docx |
轻量组合,覆盖大多数场景 |
关键区分:
- 格式说明文档为图片 → 只需 rapidocr-onnxruntime(提取文本即可,无需版面分析)
- 源文档为图片 → 需 paddleocr(必须识别标题/段落/表格等结构)
- Agent 有视觉能力 → 图片源文档无需安装任何 OCR 库(Agent 直接输出结构化 Markdown)
用户安装后,使用以下标准指令触发:
"将 [源文档.docx/.md] 按照 [格式说明.docx/.md] 的要求,进行完整的格式设置,并输出修改后的标准格式文档到 [指定路径/文件夹]"
Agent收到上述指令后,按以下步骤执行:
references/llm-parse-prompt.md 中的Prompt模板,将规范文本输入LLM进行解析format_rules.json(保存到工作目录)src/md_converter.py 转换为临时 .docx 文件src/doc_structure_analyzer.py 的逻辑分析文档结构{原文件名}_formatted.docx如果用户只上传了规范文档:
"请解析这个格式规范,输出一个可以复用的规则文件"
Agent执行Step 1,输出JSON规则文件,告知用户保存后可在后续格式化中复用。
格式规范文档可以是 .docx/.doc/.md 格式。Agent:
然后使用 references/llm-parse-prompt.md 中的标准化Prompt,让LLM提取以下要素:
| 要素 | 提取内容 |
|---|---|
| 页面设置 | 纸张大小、页边距(上/下/左/右)、页眉页脚距离 |
| 文档标题 | 字体、字号、加粗、对齐 |
| 一级标题 | 字体、字号、加粗、对齐、段前段后间距、行距 |
| 二级标题 | 同上 |
| 三级标题 | 同上 |
| 四级标题 | 同上 |
| 正文 | 中文字体、英文字体、字号、行距、首行缩进 |
| 摘要 | 字体、字号、行距、缩进 |
| 关键词 | 字体、字号、加粗 |
| 参考文献 | 字体、字号、行距、对齐、缩进 |
| 图表标题 | 字体、字号、对齐 |
| 表格 | 表体字体、表头字体/底色/加粗、边框、对齐、单元格内边距、跨页表头 |
| 公式 | 默认公式字体、公式段落保护 |
关键:LLM解析后,Agent必须向用户展示提取的规则摘要,让用户确认或修改。
当源文档为 .md 格式时,使用 src/md_converter.py 进行轻量级转换:
| Markdown 语法 | Word 转换结果 |
|---|---|
# 标题 |
Heading 1 |
## 标题 |
Heading 2 |
### 标题 |
Heading 3 |
#### 标题 |
Heading 4 |
| 普通段落 | Normal 段落 |
**粗体** / __粗体__ |
加粗文本 |
*斜体* / _斜体_ |
斜体文本 |
`代码` |
Courier New 字体 |
代码块 |
Courier New 字体,带缩进 |
- 列表项 |
List Bullet |
1. 列表项 |
List Number |
> 引用 |
斜体,灰色,带缩进 |
--- 分隔线 |
灰色分隔线 |
转换后,再按照格式规则统一调整字体和段落格式。
使用 src/doc_structure_analyzer.py 中的识别逻辑:
| 段落类型 | 识别规则 |
|---|---|
| 文档标题 | 文档前5段内、无编号、长度20-50字、无标点结尾 |
| 作者信息 | 文档前5段内、短文本(<20字) |
| 摘要标签 | 文本为"摘要"或"Abstract"(不区分大小写) |
| 摘要内容 | 摘要标签后的长文本段落(>50字) |
| 关键词 | 文本含"关键词"或"Keywords" |
| 一级标题 | 匹配 1. / 第一章 / 一、 / 第1章 等 |
| 二级标题 | 匹配 1.1 / (1) / (一) 等 |
| 三级标题 | 匹配 1.1.1 / (a) / 1.(阿拉伯数字+点,公文三级)等 |
| 四级标题 | 匹配 1.1.1.1 / (1)(公文四级)等 |
| 参考文献标签 | 文本为"参考文献"或"References" |
| 参考文献条目 | 匹配 [1] / 1. 编号模式,且在参考文献标签之后 |
| 图表标题 | 匹配 图1 / Fig.1 / 表1 / Table 1 |
| 正文 | 以上均不匹配,默认为正文 |
使用 src/format_applier.py 中的逻辑,通过python-docx库修改Word文档:
| 输入项 | 格式 | 必需 | 说明 |
|---|---|---|---|
| 格式规范文档 | .md / .docx / .doc / .wps / .pdf / .rtf / 图片 | 是 | 期刊/学校的格式说明文档 |
| 源文档 | .md / .docx / .doc / .wps / .pdf / .rtf / 图片 | 是 | 待格式化的文档 |
| 已有规则JSON | .json | 否 | 之前解析保存的规则,可替代规范文档 |
| 输出项 | 格式 | 说明 |
|---|---|---|
| 格式化后的文档 | .docx | 按规范调整后的文档 |
| 格式规则JSON | .json | 解析出的结构化规则(可选保存) |
| 结构分析报告 | 文本 | 识别的文档结构统计 |
本Skill的核心是标准化JSON规则 + Python工具脚本,可在任何环境中使用:
| 环境 | 使用方式 |
|---|---|
| Kimi Agent | 直接安装本Skill,LLM解析+Python执行 |
| QClaw | 上传规范→获取JSON→上传源文档→下载结果 |
| WorkBuddy | 作为工作流节点,串联解析+应用两个步骤 |
| Qoder | 将JSON规则注入代码生成上下文 |
| Trae Work | 在终端运行 python src/main.py |
| 本地Python | 直接运行工具脚本 |
| 场景 | 处理方式 |
|---|---|
| 规范文档格式不清晰 | 向用户展示解析出的规则,请求确认;或要求用户提供更清晰的规范 |
| 文档结构识别错误 | 展示结构分析结果,让用户指出错误段落,手动修正类型 |
| 字体未安装 | 警告用户,使用系统默认字体替代,建议安装所需字体 |
| python-docx执行失败 | 回退到纯LLM模式:让LLM逐段指导用户手动调整 |
| .doc 文件无法读取 | 提示用户将 .doc 转换为 .docx 后重试 |
| .md 文件包含复杂元素 | 警告用户部分元素可能转换不完美,建议检查输出 |
| 输出路径无权限 | 提示用户更换路径,或使用默认输出目录 |
User: 安装该技能
Agent: ✅ Word格式适配技能已安装。我可以帮您: 1. 解析期刊/学校/机关单位的格式规范文档(支持 .docx/.doc/.md) 2. 自动识别文档结构(标题、摘要、正文、参考文献等) 3. 一键应用格式规则,生成标准格式 .docx 文档
请上传您的格式规范文档和源文档,我会帮您完成格式化。
User: 将我的文档.docx按照计算机学报格式说明.docx的要求,进行完整的格式设置,并输出到 /papers/ 文件夹
Agent: 好的,开始执行格式化流程:
Step 1/5: 解析格式规范... 已从《计算机学报格式说明》中提取以下规则: - 页面:A4,页边距上下2.54cm,左右3.17cm - 一级标题:黑体16pt,居中,段前12磅段后6磅 - 二级标题:黑体14pt,左对齐,段前6磅段后6磅 - 正文:宋体12pt,Times New Roman英文,1.5倍行距,首行缩进2字符 - 摘要:楷体12pt,1.5倍行距 - 参考文献:宋体10.5pt,单倍行距
Step 2/5: 读取源文档... 文档格式:.docx,直接使用。
Step 3/5: 分析文档结构... 识别结果: - 文档标题:1个 - 作者信息:1个 - 摘要:1个(长度约200字) - 关键词:1个 - 一级标题:4个(1.引言 2.相关工作 3.方法 4.实验) - 二级标题:8个 - 三级标题:3个 - 正文段落:42个 - 参考文献:15条 - 图表标题:6个
结构识别是否正确?如有误请指出,我将修正。
Step 4/5: 应用格式规则... 正在应用格式... ✅ 页面设置已调整 ✅ 标题格式已应用(4个一级标题、8个二级标题、3个三级标题) ✅ 正文格式已应用(42个段落) ✅ 摘要/关键词格式已应用 ✅ 参考文献格式已应用(15条) ✅ 图表标题格式已应用(6个)
Step 5/5: 保存文档...
格式化完成!文档已保存至:/papers/文档_formatted.docx
User: 我的文档是 markdown 格式的,格式说明是 word 文档,能处理吗?
Agent: 可以处理!本Skill支持 .md 格式的源文档输入,会自动将其转换为 .docx 后再进行格式调整。
请上传: 1. 格式说明文档(.docx/.doc/.md) 2. 源文档(.md)
我将: 1. 解析格式规范 2. 将您的 .md 文档转换为 .docx(保留标题、粗体、斜体、列表等格式) 3. 按照规范应用格式 4. 输出标准格式的 .docx 文件
User: [上传 format_spec.docx 和 paper.md]
Agent: 收到两个文件,开始处理:
Step 1/5: 解析格式规范... 已从 format_spec.docx 中提取规则...
Step 2/5: 转换源文档...
正在将 paper.md 转换为 Word 文档...
- 识别到 Heading 1: 4个
- 识别到 Heading 2: 6个
- 识别到正文段落:38个
- 识别到粗体文本:12处
- 识别到代码块:3个
转换完成:paper_converted.docx
Step 3/5: 分析文档结构... [结构分析结果...]
Step 4/5: 应用格式规则... [格式应用结果...]
Step 5/5: 保存文档...
格式化完成!文档已保存至:paper_formatted.docx
User: 请帮我解析这个学位论文格式规范(.md),我要保存规则以后用
Agent: 正在解析格式规范(.md)...
提取的规则摘要: - 页面:A4,页边距上下2.5cm,左右3cm - 一级标题:黑体三号(16pt),居中 - 二级标题:黑体四号(14pt),左对齐 - 正文:宋体小四(12pt),英文Times New Roman,1.5倍行距 - 摘要:楷体小四(12pt) - 参考文献:宋体五号(10.5pt)
规则JSON已生成,是否保存? [输出 format_rules.json 供下载]
您可以保存此JSON文件,以后格式化文档时直接上传规则和源文档即可,无需重复解析规范。
这个 Skill 质量不错,能解决论文、公文等文档格式调整的实际痛点。优点是支持多种格式输入、规则可复用、多层容错机制;文档详细清楚,安装使用有明确指引。不足之处是部分复杂格式(如合并单元格、修订批注)处理不了,.doc 格式兼容性一般,遇到这类文件可能需要先手动转换。总体而言是款实用工具,适合有固定格式要求的文档处理场景。