Word排版格式刷Skill

👤 黄晨征 📦 v2.0.4 ⭐ 4.6 ⬇️ 1.8K 下载
📄 办公效率 免费

📖 技能介绍


name: bid-word-format description: 根据用户提供的参考 Word 模板,重排中文投标书、方案书、建议书等 .doc/.docx 文档,保留原文内容,清理乱格式,迁移标题、正文、页眉页脚、页面设置和表格基础样式,并输出处理报告与结构 QA 报告。 agent_created: true


Word 文档排版技能

Word 文档排版技能是一个用于中文投标书、方案书、建议书和商务长文档的 Word 模板迁移排版工具。

它接收两份 Word:

  • 参考模板 Word:提供标题、正文、页眉页脚、页面设置和编号样式。模板由用户提供,本技能负责学习并复刻它,不内置任何固定模板。
  • 待排版 Word:提供需要保留的正文、标题文本和表格文字。

输出是一份新的规范化 .docx,以及处理报告和结构 QA 报告。

核心原则(务必遵守)

  1. 模板来自用户:不要凭空假设、不要生成默认模板。必须先拿到用户上传的参考模板,解析学习并让用户确认后,才能开始排版。
  2. 顺序固定,不可跳步:环境自检 → 索要模板 → 索要待排版文件 → 排版 → 交付复核。
  3. 每步都明确告诉用户:每一步开始前,用一句话说明你现在要做什么、需要用户提供什么。

标准交互流程(严格按此顺序逐步引导用户)

第 0 步:检查运行环境

先运行环境自检:

python scripts/check_env.py

检查内容:Python 版本、python-docxlxml(必需);LibreOffice/soffice(可选,用于 .doc 转换和页面渲染)。

根据结果明确告知用户:

  • 环境就绪 → 进入第 1 步。
  • 缺必需项(python-docx / lxml)→ 告诉用户「缺少什么、如何安装」,并停下等待用户补齐,不要强行继续。
  • 缺 soffice → 提示「可继续处理 .docx,但 .doc 转换和页面渲染不可用」,可继续。

文件检查format_bid_doc.py 内置 _preflight 前置校验,排版前会自动检查模板/输入文件的存在性、格式(.docx/.doc)、.docx 完整性、.doc 是否需要 soffice。出错时给出友好中文提示(问题 + 原因 + 解决建议),不抛 traceback。也可在排版前手动运行 check_files.py 提前诊断。

第 1 步:向用户索要参考模板(学习)

明确告诉用户:

请上传你想复刻格式的参考模板 Word 文件(.docx 优先,.doc 也可以)。我会学习它的标题层级、正文样式、页眉页脚和页面设置。

收到模板后:

  1. 先检查文件(避免拿到损坏文件后才发现): bash python scripts/check_files.py --template <模板路径>
  2. 若报错(不存在/格式不支持/损坏)→ 把友好提示原样转告用户,请用户用 Word 重新另存或换一份,不要继续
  3. 学习模板bash python scripts/learn_template.py --template <模板路径>
  4. 复述学到的内容请用户确认,必须覆盖以下维度(用脚本实际输出,不要自己编):

    我已学习到: - 页面:A4 纵向,边距 上3.0/下3.5/左3.0/右2.0 cm - 标题:分 4 级(Heading 1~4,黑体) - 正文:中文宋体、西文/数字 Arial、小五(9pt)、1.5 倍行距、首行缩进 2 字符、两端对齐 - 页眉:xxx(保留模板原文)/ 页脚:页码 请确认这就是你要的格式。

  5. 若 learn_template 输出「样式级 vs run级冲突」(如字号小四vs小五)→ 必须告知用户:

    ⚠️ 检测到模板存在格式覆盖:Normal 样式定义为小四(12pt),但正文实际是小五(9pt)+Arial。排版时会以正文实际格式为准套用。

  6. 只有用户确认后,才进入下一步。若用户指出理解有误,修正后再次确认。

第 2 步:向用户索要待排版文件

模板确认后,明确告诉用户:

请上传你想刷格式的 Word 文件(.docx 优先)。我会保留它的正文内容,套用刚才学到的模板格式。

收到文件后:

  1. 先检查文件bash python scripts/check_files.py --template <模板路径> --input <待排版路径>
  2. 若报错 → 把友好提示原样转告用户,请用户修正后重新上传,不要继续
  3. 若通过 → 进入排版。

第 3 步:执行排版

  1. 若输入为旧版 .doc,先用 LibreOffice/soffice 转为 .docx
  2. 运行排版脚本(见「命令示例」)。
  3. 运行结构 QA。
  4. 渲染为 PDF 做视觉检查,不要只看 XML 或 JSON 就判断完成

任一步骤失败时的处理: - 脚本会输出友好中文提示(问题 + 原因 + 解决建议),把提示原样转告用户,不要自己翻译成技术术语。 - 若是文件问题(损坏/格式)→ 请用户用 Word 重新另存或换文件。 - 若是环境问题(缺 soffice)→ 给出 LibreOffice 下载链接或建议另存为 .docx。 - 若是未预期错误 → 提示用户先跑 check_env.py + check_files.py 诊断,仍不行则反馈错误信息。 - 不要把 Python traceback 直接丢给用户。

第 4 步:交付并请用户复核

交付 formatted.docx、处理报告、QA 报告,并提醒用户重点检查:

  • 表格是否溢出、文字是否裁切。
  • 页眉页脚是否正确(应保留模板原文)。
  • 标题层级是否识别正确,编号是否连续(1 / 1.1 / 1.1.1)。
  • 正文格式是否与模板一致:中文字体(宋体)、西文/数字字体(Arial)、字号(小五)、行距(1.5 倍)、首行缩进(2 字符)、两端对齐。
  • 页面尺寸、页边距是否接近参考模板。

    7w4.net小葱技能。

  • 渲染的 PDF 没有文字重叠、页眉页脚断裂。

自动处理内容

  • 规范化待排版文档内容。
  • 根据 11.11.1.11.1.1.1 等编号识别标题层级。
  • 将标题映射到 Word Heading 1/2/3/4 样式。
  • 清理源文档中干扰模板的直接字体、字号、颜色等格式。
  • 复制参考模板的样式、编号、主题、字体表、设置、节属性、页眉页脚和相关媒体部件。
  • 保留表格文字,并应用基础网格边框和单元格边距。

这个技能用于格式迁移,不用于正文改写。如果源文档缺少封面、审批页、目录等关键字段,需要用户补充或人工确认。

格式要求

排版从模板学习并复刻以下格式维度,全部从模板学习、不硬编码默认值

标题层级

  • 识别源文档的标题:样式为 Heading 1~4 或文本以 1 / 1.1 / 1.1.1 / 1.1.1.1 等数字编号开头。
  • 映射到模板里实际存在的标题样式 ID(兼容英文 Heading1-4、中文「标题 1-4」、纯数字命名)。
  • 模板的 Heading 样式若带自动多级编号,保留并由 Word/LibreOffice 自动渲染。

正文排版(关键)

从模板学习「正文画像」,包含样式级 + run 级两层,两层都看、run 级优先

维度 含义 来源
段落样式 Normal 段落级 pStyle
中文字体 eastAsia(如宋体 / 宋体;SimSun) Normal 样式定义
西文/数字字体 ascii / hAnsi(如 Arial) run 级覆盖
字号 半磅值(如 18 = 小五 / 9pt) run 级覆盖
行距 line + lineRule(如 360 auto = 1.5 倍) 段落级
首行缩进 firstLineChars(如 200 = 2 字符),优先字符数 段落级
对齐 jc=both(两端对齐) 段落级

关键:run 级字体/字号必须显式写入每个 run,不依赖样式继承。 模板 Normal 样式定义的字号可能是 12pt(小四),但正文 run 实际常覆盖为 9pt(小五)+ Arial(西文/数字)。只套样式而不写 run 级,会导致正文字号/字体与模板不一致。

学习模板时,运行 scripts/learn_template.py 会同时输出: - Normal 样式定义的字体/字号(样式级) - 正文 run 实际的字体/字号(run 级) - 两者合并后的有效字体 - 样式级 vs run 级冲突清单(如有冲突,排版时会显式写入 run 级覆盖)

表格

  • 保留表格文字,应用基础边框和单元格边距(Table Grid 样式 + tblBorders + tblCellMar)。
  • 表格内段落保持 Normal 样式,不强行套正文画像(避免破坏表格布局)。

页面与页眉页脚

  • 复制模板的页面尺寸、页边距、节属性(含横向节)。
  • 复制模板的页眉页脚(含媒体图片如 logo)。
  • 页眉默认保留模板原文;只有显式传 --header-text 时才替换。

命令示例

检查环境:

python scripts/check_env.py

检查文件(可选,排版前提前诊断文件是否有问题):

python scripts/check_files.py --template templates/your_template.docx --input your_input.docx

学习模板格式(标题层级 + 正文画像 + 冲突检测):

python scripts/learn_template.py --template templates/your_template.docx

首次使用前:生成演示模板(SkillHub 禁止上传二进制文件,发布包不含 sample_template.docx):

python scripts/create_sample_template.py

输出 templates/sample_template.docx,中性演示,不包含真实业务数据。正式使用请用你自己的参考模板(替换 --template 参数)。

创建脱敏测试输入:

python scripts/create_test_input.py --out tests/messy_bid_input.docx

运行排版:

python scripts/format_bid_doc.py \
  --template templates/sample_template.docx \
  --input tests/messy_bid_input.docx \
  --out tests/formatted_bid_output.docx \
  --report tests/formatted_bid_output.report.json

注意:以上用包内置的中性演示模板跑通流程;正式使用请把 --template 换成你自己的参考模板。

运行结构 QA:

python scripts/qa_docx.py --docx tests/formatted_bid_output.docx

渲染并视觉检查:

python scripts/render_docx.py tests/formatted_bid_output.docx --output_dir tests/rendered --emit_pdf

验收清单

  • 输出 .docx 可以正常打开。
  • 页面尺寸、页边距、页眉页脚接近参考模板。
  • 标题层级出现在 Word 样式系统中,编号正确(1 / 1.1 / 1.1.1)。
  • 正文不再保留明显的乱字体、乱字号、乱颜色。
  • 正文段落的中文字体、西文/数字字体、字号、行距、首行缩进、对齐与模板正文一致。
  • 表格文字完整,没有明显裁切。
  • 处理报告和 QA 报告已生成。
  • 渲染页面没有文字重叠、页眉页脚断裂或表格溢出。

能力边界

自动排版可以复现模板样式系统和页面结构,但不能凭空准确推断缺失的业务字段。对于封面、审批信息、目录、复杂表格、图片排版和超宽页面,最终仍需要人工复核。

🤖 AI 评测

这个技能质量不错,文档写得清楚明白,操作流程一步步引导用户,遇到问题会给友好的提示而不只是冷冰冰的技术报错。核心功能稳定,能把模板格式准确迁移到新文档,保留原文档内容不变。不足之处是复杂表格和图片处理能力有限,需要人工复核;SkillHub 版本不自带示例模板,首次使用需要运行脚本生成。总体适合处理常规的中文投标书、方案书排版,标准化工作场景用它很顺手。

📊 多维度评分

适应性4.7
规范性4.4
有效性4.6
可靠性4.5
可信度5

📁 包含文件 (15 个)

📄 PRODUCT.md 7.7 KB
📄 SKILL.md 10.8 KB
📄 SKILLHUB_DESCRIPTION.txt 6.6 KB
📄 _meta.json 115 B
📄 agents/workbuddy.yaml 278 B
📄 requirements.txt 27 B
📄 scripts/check_env.py 2.8 KB
📄 scripts/check_files.py 5.7 KB
📄 scripts/create_sample_template.py 6.3 KB
📄 scripts/create_test_input.py 3 KB
📄 scripts/format_bid_doc.py 28.4 KB
📄 scripts/learn_template.py 11.9 KB
📄 scripts/qa_docx.py 2.4 KB
📄 scripts/render_docx.py 3.5 KB
📄 templates/README.md 1.2 KB