docx 图表无损提取与迁移
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_af163eaa/docx-chart-extract-migrate。
技能介绍
要解决什么问题
在新 Word 文档里复用旧稿中的图表时,常见做法是截图或让模型用 matplotlib / ECharts 重画。若旧文档里是双击可改数据的嵌入 Office 图表,重绘几乎必然在主题色、字体和配色上与 WPS/Office 不一致,后期改样式成本很高。
本技能的目标很明确:把原文档中的图表提取为 PNG 再插入新文档,并在视觉上与原文档保持一致,而不是从零绘制。
核心思路与步骤
技能遵循一条已验证路径:本机 Microsoft Word 将 docx 渲染为 PDF(保真)→ 用 PyMuPDF 等定位并裁剪图表区域 → 输出高清 PNG → 按排版规范写入新 docx。
插入阶段有几条硬约束,否则很容易出现「图盖住字」:图表段落用单倍行距(line=240, lineRule=auto),不要用固定 28 磅行距;首行缩进为 0;段前段后留足间距;图片宽度不超过 A4 常见页边距下的内容区(约 154mm)。用 python-docx 插入时,建议在 run 级显式设字体,避免标题样式被改写后的回退问题。
适用边界与注意点
- 前置条件:依赖本机已安装 Word(如
docx2pdf);若无 Word,需与用户确认替代方案(例如用户手动另存 PDF 后再从 PDF 裁剪)。 - 已排除方案:程序化重绘、
LibreOffice soffice、macOSqlmanage、CoreGraphics 直读 PDF 等,文档中均标注为不可靠或环境受限,勿重复踩坑。 - 禁止项:原文档有可提取图表时不得用 matplotlib/echarts 重绘;不得让图表段落固定行距导致溢出覆盖相邻文字。
使用场景
- 年度报告换模板时,要把旧 docx 里可编辑的嵌入图表原样放进新稿,不能接受 matplotlib 重绘后的配色偏差。
- 投标或方案书迭代:上一版 Word 中的柱状图、折线图需插入新版文档,且主题色与字体须与旧稿一致。
- 用 python-docx 批量生成或拼装 Word 时,需从既有 docx 抽出图表 PNG 再写入目标文件,并避免图片行距导致盖住正文。
- 本机有 Word、无 LibreOffice:必须从 docx 经 PDF 裁剪得到高清图表,再按单倍行距与内容区宽度规范插入。
适合人员
- 维护企业 Word 模板与定稿报告、经常从旧版复制嵌入图表的文档工程师或行政排版同事。
- 用脚本拼装合同、月报等 docx,又必须保留原稿图表视觉一致性的 Python 自动化维护者。
- 撰写投标书、可研或培训讲义,需在多版 Word 间迁移 Office 图表且拒绝手工截图糊化的咨询或培训作者。
- 在 WPS/Office 混用环境里负责文档迁移,已确认重绘不可接受、只能走 Word 导出 PDF 再裁剪的同事。