📄

Word文档格式自动适配

👤 aken721 📦 v1.3.2 ⭐ 4.7 ⬇️ 31 下载
📄 办公效率 免费

📖 技能介绍


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.

version: 1.3.2

Word文档格式自动适配 Skill

概述

本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),避免装到错误解释器。
  • 公式处理依赖Word内置公式字体(默认 Cambria Math),系统通常已自带。

图片输入处理协议

当格式规范文档或源文档为图片格式(.png/.jpg/.jpeg/.bmp/.tiff)时,按以下三层降级链处理:

角色A — 图片作为格式说明文档(仅需提取文本):

  1. 第1层 — Agent 视觉能力(推荐,零代码):
  2. Agent 自检是否具备图片识别能力(如 analyzeImage 工具或多模态理解)
  3. 若具备:提取图片中的文本内容 → 保存为临时 .md 文件 → 用该 .md 路径替代原图片路径 → 走标准流程
  4. OCR 质量最高(多模态 LLM 远超传统 OCR)

  5. 第2层 — Python OCR 引擎(代码自动降级):

  6. 若 Agent 无视觉能力,将图片路径传给 Python 脚本
  7. 脚本按优先级尝试以下 OCR 引擎:

    • RapidOCR (rapidocr-onnxruntime):首选,轻量~50MB,中文优秀,pip install 即可
    • Tesseract (pytesseract + Pillow):备选,通用,需额外安装 Tesseract + chi_sim 语言包
    • EasyOCR (easyocr):末选,质量好但依赖 PyTorch ~500MB

    这个技能的最新版本可以在7w4.net小葱技能站找到。

  8. 第3层 — 优雅失败

  9. 若以上均不可用,返回明确的错误信息和安装指引
  10. 提示用户可手动将图片内容转为 .md 文件后重试

角色B — 图片作为源文档(需识别结构:标题/段落/表格/插图):

  1. 第1层 — Agent 视觉能力(推荐,零代码):
  2. Agent 用视觉能力分析图片中的文档版面结构
  3. 按 Markdown 格式输出结构化文本(关键步骤):
    • # = 文档标题
    • ## = 一级标题(1. / 一、 / 第一章)
    • ### = 二级标题(1.1 / (一))
    • #### = 三级标题(1.1.1 / 1.)
    • 普通段落 = 正文
    • | col | col | = 表格
  4. 保存为 .md 文件 → 走标准 Markdown 管道(md_converter → DocumentStructureAnalyzer → FormatApplier)
  5. 此方案结构识别质量最高(多模态 LLM 理解版面语义)

  6. 第2层 — PaddleOCR PP-Structure(Python 版面分析 fallback):

  7. 若 Agent 无视觉能力,脚本自动尝试 PaddleOCR PP-Structure
  8. PP-Structure 一体化识别:标题(title)、正文(text)、表格(table)、图片(figure) 区域
  9. 按区域类型构建 docx(title→Heading, text→Paragraph, table→Table)
  10. 需安装:pip install paddleocr(约1GB)

  11. 第3层 — RapidOCR 带坐标启发式推断

  12. 若 PP-Structure 不可用,用 RapidOCR 带坐标结果
  13. 按文本行高度启发式推断标题(高于中位数1.5倍→H1, 1.2倍→H2)
  14. 结构识别质量中等

  15. 第4层 — 纯 OCR 文本

  16. 以上均不可用时,提取纯文本构建全 Normal 段落的 docx
  17. 结构识别差,仅靠后续 DocumentStructureAnalyzer 的编号正则识别标题

PDF 源文档处理协议

文本版 PDF(正常 PDF): - 使用 pdf2docx 转换为 docx,保留段落/表格结构 - 标题样式通常丢失,但 DocumentStructureAnalyzer 可通过编号正则识别

扫描版 PDF(实为图片): - 脚本自动检测是否为扫描件(文本量极少 + 含图片) - 若为扫描件:每页渲染为图片(200dpi) → 走图片源文档处理协议(上述角色B) - 需安装 PyMuPDF(fitz) 用于渲染:pip install PyMuPDF

安装说明

当用户将本Skill包拖入对话框并说"安装该技能"时:

  1. 读取 SKILL.md 理解能力范围
  2. 读取 src/ 目录下的Python工具代码(如环境支持Python执行)
  3. 读取 references/llm-parse-prompt.md 获取LLM解析模板
  4. 读取 references/format-rules-schema.md 理解JSON规则格式
  5. 检测Python环境依赖(见上方「环境依赖」),必要时安装 python-docx
  6. 运行 check_optional_capabilities() 检测可选依赖,记录可用能力
  7. 向用户确认安装结果,并根据用户预期用途给出可选依赖安装建议(见下方「可选依赖安装决策指引」)

可选依赖安装决策指引

安装时 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收到上述指令后,按以下步骤执行:

Step 1: 读取并理解格式规范

  • 读取用户上传的格式规范文档(.docx/.doc/.md)
  • 如为 .md 文件,直接读取文本内容
  • 如为 .docx/.doc 文件,提取文档中所有段落文本
  • 使用 references/llm-parse-prompt.md 中的Prompt模板,将规范文本输入LLM进行解析
  • LLM输出结构化的JSON格式规则
  • 输出: format_rules.json(保存到工作目录)

Step 2: 读取并转换源文档

  • 读取用户上传的源文档(.docx/.doc/.md)
  • 如为 .md 文件,调用 src/md_converter.py 转换为临时 .docx 文件
  • 如为 .doc 文件,尝试用 python-docx 读取并另存为 .docx
  • 如为 .docx 文件,直接使用
  • 输出: 转换后的 .docx 文件路径

Step 3: 分析文档结构

  • 使用 src/doc_structure_analyzer.py 的逻辑分析文档结构
  • 识别:文档标题、作者、摘要、关键词、各级标题(1-4级)、正文、参考文献、图表标题
  • 输出: 结构分析报告(文本形式展示给用户)

Step 4: 应用格式规则

  • 加载Step 1生成的JSON规则
  • 根据Step 3识别的结构,逐段落应用格式
  • 修改内容:页面设置、字体、字号、行距、间距、对齐、缩进
  • 输出: 格式化后的Word文档(.docx)

Step 5: 保存并交付

  • 将格式化后的文档保存到用户指定的路径/文件夹
  • 如用户未指定路径,保存到默认输出目录,命名为 {原文件名}_formatted.docx
  • 如原文档是 .md 转换而来,输出文件名基于原 md 文件名
  • 向用户展示:
  • 格式化完成确认
  • 应用的规则摘要(如"一级标题:黑体16pt加粗居中")
  • 识别的结构统计(如"识别到3级标题共12个,正文段落45个")
  • 输出文件路径

分步模式

如果用户只上传了规范文档:

"请解析这个格式规范,输出一个可以复用的规则文件"

Agent执行Step 1,输出JSON规则文件,告知用户保存后可在后续格式化中复用。

核心能力详解

1. 格式规范解析(LLM驱动)

格式规范文档可以是 .docx/.doc/.md 格式。Agent:

  • .docx/.doc: 用 python-docx 提取所有段落文本
  • .md: 直接读取文件文本内容

然后使用 references/llm-parse-prompt.md 中的标准化Prompt,让LLM提取以下要素:

要素 提取内容
页面设置 纸张大小、页边距(上/下/左/右)、页眉页脚距离
文档标题 字体、字号、加粗、对齐
一级标题 字体、字号、加粗、对齐、段前段后间距、行距
二级标题 同上
三级标题 同上
四级标题 同上
正文 中文字体、英文字体、字号、行距、首行缩进
摘要 字体、字号、行距、缩进
关键词 字体、字号、加粗
参考文献 字体、字号、行距、对齐、缩进
图表标题 字体、字号、对齐
表格 表体字体、表头字体/底色/加粗、边框、对齐、单元格内边距、跨页表头
公式 默认公式字体、公式段落保护

关键:LLM解析后,Agent必须向用户展示提取的规则摘要,让用户确认或修改。

2. Markdown 到 Word 转换

当源文档为 .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
> 引用 斜体,灰色,带缩进
--- 分隔线 灰色分隔线

转换后,再按照格式规则统一调整字体和段落格式。

3. 文档结构识别(规则驱动)

使用 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
正文 以上均不匹配,默认为正文

4. 格式应用(python-docx驱动)

使用 src/format_applier.py 中的逻辑,通过python-docx库修改Word文档:

  • 页面设置:修改Section的page_width、page_height、margins
  • 段落格式:alignment、line_spacing、space_before/after、indentation
  • 字体格式:name、size、bold、italic、color
  • 中英文字体分离:通过底层XML操作(w:rFonts节点的w:eastAsia属性)分别设置中文字体和英文字体
  • 样式修改:同步修改文档内置样式(Normal、Heading 1-4)

输入输出规范

输入

输入项 格式 必需 说明
格式规范文档 .md / .docx / .doc / .wps / .pdf / .rtf / 图片 期刊/学校的格式说明文档
源文档 .md / .docx / .doc / .wps / .pdf / .rtf / 图片 待格式化的文档
已有规则JSON .json 之前解析保存的规则,可替代规范文档

输出

输出项 格式 说明
格式化后的文档 .docx 按规范调整后的文档
格式规则JSON .json 解析出的结构化规则(可选保存)
结构分析报告 文本 识别的文档结构统计

跨Agent适配

本Skill的核心是标准化JSON规则 + Python工具脚本,可在任何环境中使用:

环境 使用方式
Kimi Agent 直接安装本Skill,LLM解析+Python执行
QClaw 上传规范→获取JSON→上传源文档→下载结果
WorkBuddy 作为工作流节点,串联解析+应用两个步骤
Qoder 将JSON规则注入代码生成上下文
Trae Work 在终端运行 python src/main.py
本地Python 直接运行工具脚本

限制与注意事项

  1. .doc 格式兼容性:python-docx 对 .doc 格式的读取能力有限,复杂 .doc 文件可能无法正确读取,建议先转换为 .docx
  2. Markdown 转换:轻量级转换器仅支持基本 Markdown 语法,复杂表格、数学公式、嵌套列表等可能转换不完美
  3. 复杂页眉页脚:奇偶页不同、分节符控制等需手动调整
  4. 公式对象:MathType/OMML公式格式修改能力有限
  5. 参考文献排序:仅调整格式,不重新排序引用
  6. 字体依赖:需确保系统安装规则中指定的字体
  7. 表格格式:支持表格边框、表头加粗+底色、单元格垂直居中、单元格内边距、跨页重复表头、表格整体对齐;但不支持合并单元格的修改
  8. 标题识别:无编号标题的识别准确率较低,建议用户确认结构分析结果

错误处理

场景 处理方式
规范文档格式不清晰 向用户展示解析出的规则,请求确认;或要求用户提供更清晰的规范
文档结构识别错误 展示结构分析结果,让用户指出错误段落,手动修正类型
字体未安装 警告用户,使用系统默认字体替代,建议安装所需字体
python-docx执行失败 回退到纯LLM模式:让LLM逐段指导用户手动调整
.doc 文件无法读取 提示用户将 .doc 转换为 .docx 后重试
.md 文件包含复杂元素 警告用户部分元素可能转换不完美,建议检查输出
输出路径无权限 提示用户更换路径,或使用默认输出目录

示例对话

示例1:完整格式化流程(docx输入)

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


示例2:Markdown文档输入

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


示例3:仅解析规范

User: 请帮我解析这个学位论文格式规范(.md),我要保存规则以后用

Agent: 正在解析格式规范(.md)...

提取的规则摘要: - 页面:A4,页边距上下2.5cm,左右3cm - 一级标题:黑体三号(16pt),居中 - 二级标题:黑体四号(14pt),左对齐 - 正文:宋体小四(12pt),英文Times New Roman,1.5倍行距 - 摘要:楷体小四(12pt) - 参考文献:宋体五号(10.5pt)

规则JSON已生成,是否保存? [输出 format_rules.json 供下载]

您可以保存此JSON文件,以后格式化文档时直接上传规则和源文档即可,无需重复解析规范。

🤖 AI 评测

这个 Skill 质量不错,能解决论文、公文等文档格式调整的实际痛点。优点是支持多种格式输入、规则可复用、多层容错机制;文档详细清楚,安装使用有明确指引。不足之处是部分复杂格式(如合并单元格、修订批注)处理不了,.doc 格式兼容性一般,遇到这类文件可能需要先手动转换。总体而言是款实用工具,适合有固定格式要求的文档处理场景。

📊 多维度评分

适应性4.7
规范性4.8
有效性4.7
可靠性4.5
可信度4.9

📁 包含文件 (18 个)

📄 CHANGELOG.md 7.1 KB
📄 README.md 10 KB
📄 SKILL.md 23 KB
📄 examples/before-after-comparison.md 5 KB
📄 examples/example_rules.json 3.5 KB
📄 examples/format_jrjg.py 17.5 KB
📄 examples/format_rules_jrjg.json 5.6 KB
📄 references/faq.md 6.3 KB
📄 references/format-rules-schema.md 3.9 KB
📄 references/llm-parse-prompt.md 4.3 KB
📄 references/usage-guide.md 6.6 KB
📄 requirements-optional.txt 2.1 KB
📄 requirements.txt 211 B
📄 src/doc_structure_analyzer.py 8.2 KB
📄 src/format_applier.py 16.3 KB
📄 src/format_spec_parser.py 21.3 KB
📄 src/main.py 6.1 KB
📄 src/md_converter.py 36.3 KB