Draw.io 转原生可编辑 PPTX
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_253d3ef8/drawio-to-pptx。
技能介绍
把 draw.io 的图搬进 PPT,为什么「截图」不够用
大多数团队画完流程图,交付给 PPT 的方式只有一种:截图、粘贴。代价是整张图变成一张不可编辑的位图:评审会上想临时改一个节点的文字、把箭头换个方向,都得回到 draw.io 改完重新导出、重新贴。图片版本在聊天里越滚越多,最后谁也说不清哪张图对应哪一页幻灯片。
@user_253d3ef8/drawio-to-pptx 解决的就是这个问题:它把 .drawio 文件直接转换成 PPTX,转换结果是原生形状而非图片——矩形是自动形状,文字是文本框,连线是带箭头的连接器,打开就能在 PowerPoint / Keynote / WPS 里直接拖拽、改色、改字、重新走线。
转换器做了什么
核心是 scripts/drawio_to_pptx.py 这一个脚本:解析 drawio 的 XML,再按映射表把每个元素翻译成对应的 PPT 原生对象。
- 形状映射:矩形/圆角矩形、椭圆、菱形、圆柱、三角形、六边形、云、平行四边形、梯形都会映射为相应类型的自动形状;纯文字图层转成无填充无边框的文本框;
- 容器与泳道:嵌套容器按绝对坐标解析,先画底层大框,子元素按原层级覆盖其上;
- 连线:有 waypoint 的边转成开放折线,否则是直线连接器;箭头样式取自
startArrow/endArrow,颜色与粗细取自strokeColor/strokeWidth,边的标签放在线段中点; - 其余细节:垂直文字用
vert270处理,幻灯片背景取自 drawio 的background属性,压缩格式(base64+deflate)的.drawio会自动解码。
一次调用即可完成转换,默认输出 16:9 幻灯片、0.3 英寸 边距。元素密集的图建议加 --font-scale 1.2,文本大小会被限制在 --min-font / --max-font(默认 7–40pt)之间,避免标签挤成一团。
转换后值得做的一步验证
脚本支持用 python-pptx 重新打开产物自检:形状数量高(每个 drawio cell 对应一个形状)说明转换正确;如果只读到一个 PICTURE 形状,说明有东西退回了图片——用这个脚本时正常不该发生。
边界:哪些东西换不成原生形状
- 品牌 stencil:
mxgraph.aws4.*、Cisco/Kubernetes 图标这类第三方图形无法复刻为原生形状,只会得到一个带标签的矩形,标签与颜色保留; - 渐变与阴影:
gradientColor会塌缩为fillColor的纯色填充,阴影被丢弃(可在 PPT 里手动补回); - 正交布线:只有 source/target 而没有 waypoint 的边,会画成裁剪到盒子边缘的直线,想要别的路径需在 PPT 里手动重连;
- 多页与中日韩文字:多个 drawio 页对应多张幻灯片;中文等 CJK 文本依赖 PowerPoint 字体回退,字号偏小时调大
--font-scale即可。
使用场景
- 架构评审会上要现场改模块名称、重连箭头,截图重画来不及,需转成 PPTX 直接编辑
- 把多页 drawio 流程图(含泳道、嵌套容器)转成逐页幻灯片交付,不用逐页贴图
- 元素密集的大图转换后文字偏小,需用 --font-scale 放大文本再导出
- 转换完成后想确认产物是原生形状而非整张图片,用 python-pptx 复查形状数量
适合人员
- 后端/架构工程师:评审会上要现场改图重连箭头,不想回 draw.io 重新导出
- 产品经理:要把流程图交给不用 draw.io 的同事或客户,对方要能在 PPT 里自行编辑
- 项目经理:汇报幻灯片里的图表需要改字配色,希望直接在 PPT 里完成而非重画
- 技术顾问:多页架构图要逐页进 PPT,交付后还要能在 Keynote/WPS 里接着改