Word CJK 排版修复器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_fb0c5f0e/docx-cjk-formatter 技能。
技能介绍
解决 python-docx 的 CJK 排版缺陷
在使用 python-docx 处理包含中日韩(CJK)字符的文档时,常会遇到排版错乱的问题。底层库在写入样式时,run.font.name 仅设置了 w:ascii 和 w:hAnsi,遗漏了 w:eastAsia;同理,run.font.size 只写了 w:sz 而忽略了 w:szCs。这导致中文字符回退到系统默认字体和字号。此外,原文档中多个 run 混合格式在清理后容易残留旧样式,最终出现同一行文字大小不一、粗细不均的“斑马纹”现象。
核心机制与处理流程
本技能提供两种处理策略,遵循先合并 run 再设格式的原则,彻底杜绝样式残留:
- 完整格式化:适用于从零生成或需统一全局样式的文档。脚本会提取段落内所有
run的文本并合并为单一节点,随后执行字体三写(ascii+hAnsi+eastAsia)与字号双写(sz+szCs),确保所有字符渲染一致。 - 轻量级修复:适用于已存在且仅追加了少量内容的文档。该方案不改变原有排版结构,仅针对新增或修改的部分补充 CJK 属性,实现平滑补救。
适用边界与注意事项
该技能专注于纯排版修复,严格遵循只做格式调整、不修改正文内容的原则,输出结果保持简洁,不添加多余装饰。需要注意的是,它主要依赖 python-docx 的标准 API,对于包含复杂 Word 原生特性(如文本框嵌套、艺术字或复杂宏)的文档,可能需要结合底层 XML 操作进行二次处理。
使用场景
- 在编写脚本批量生成中文合同时,确保 Word 中中英文混排的字体和字号渲染完全一致,避免大小不一。
- 对已有的历史 Word 文档进行局部内容追加后,需要修复新增段落中中文字符字体和字号回退到默认值的问题。
- 处理包含多个不同样式片段的复杂文档时,需要将段落内格式统一,消除因残留旧格式导致的同一行文字粗细不一。
适合人员
- 后端开发工程师,需要编写自动化脚本批量生成包含大量中文报表的 Word 文档,并确保排版专业无误。
- 数据分析师,习惯将图表和中文说明拼接成 Word 报告,希望解决混排时字体回退和大小错乱的问题。
- 技术文档工程师,负责维护历史遗留的 Word 文档,需要在追加新章节时保证新旧内容的字体和字号统一。