用例图栏目 ·

用例图导出 draw.io(diagrams.net):如何二次编辑与提交文档

讲清用例图从工具导出为 draw.io(diagrams.net)可编辑文件的做法:选择格式、分层与命名、字体与对齐、导入校验,以及团队提交/评审时的注意事项。

很多团队的用例图画在不同工具里:有人用 diagrams.net(原 draw.io),有人用 Visio、StarUML、PlantUML,甚至有人只在 PPT 里摆形状。等到要评审、要归档、要在同一个仓库里协作时,最常见的问题是:

  • 只剩一张 PNG/JPG,别人没法二次编辑
  • 拿到的文件能打开,但字体、箭头、对齐全乱了
  • 提交到文档平台后,图变成“不可选中”的图片

这篇文章把“把用例图导出成 draw.io(diagrams.net)可编辑文件”这件事拆开讲清楚:你应该导出什么、怎么导入验证、怎么整理图层与命名,最后怎么提交给团队让别人接得住。

先确认:你要的不是“高清”,而是“可编辑”

导出高清 PNG 解决的是“看得清”,导出到 draw.io 解决的是“改得动”。如果你接下来会遇到这些场景,优先考虑可编辑导出:

  • 评审意见要改参与者(Actor)名称、调整用例边界
  • 要拆分一个用例、补充 include/extend 关系
  • 同一张图要出多个版本(不同角色/不同范围)
  • 要把图和需求文档一起进仓库做版本管理

diagrams.net 支持什么:两种主流交付方式

在团队协作里,最常用的是下面两种:

  1. .drawio(推荐)
  • 本质是 XML(可读性一般,但能 diff/合并)
  • 在 diagrams.net 打开编辑最稳
  • 适合进 Git 仓库
  1. SVG(可编辑但需要验证)
  • 部分工具导出 SVG 后,导入 diagrams.net 仍可编辑
  • 但不同工具对 SVG 的“可编辑性”实现不一致,容易出现文字变路径、组合丢失

如果你本来就用 diagrams.net 画图:直接保存 .drawio 或 “File → Save as” 即可。

如果你用的是其他工具:目标通常是 尽量导出为“可保留形状/文本”的格式,再导入 diagrams.net

通用流程:从任意工具到 draw.io 的 6 步

下面是一套“尽量少踩坑”的通用步骤,你不必一次做到完美,但建议按顺序走。

第 1 步:在源工具里做一次“导出前整理”

导出之前先做这 4 件事,能显著减少导入后的错位:

  • 统一字体:尽量全图使用同一种字体(如 思源黑体/微软雅黑),避免混用
  • 对齐与间距:用工具自带的 Align/Distribute,把 Actor、用例椭圆、关系线拉直
  • 减少“奇怪的效果”:阴影、渐变、手绘风格、复杂箭头样式都可能导入失败
  • 把图拆分成合理大小:一张图太大时,导入更容易卡或错位(可以按模块拆成两张)

第 2 步:选择最可能保留编辑信息的导出格式

你可能会看到很多导出选项:PNG/PDF/SVG/EMF/Visio/…

经验上,优先尝试顺序:

  • SVG(优先):看能否在 diagrams.net 中继续选中单个形状与文字
  • PDF(备选):多数情况下导入后会变成图片/路径,编辑性不一定好
  • PNG(不推荐用于可编辑):只有展示价值,没有二次编辑价值

如果你的工具支持导出 Visio(VSDX)drawio(少数工具/插件提供),那当然最好,直接走官方兼容链路。

第 3 步:导入 diagrams.net,并立刻做“可编辑性校验”

打开 diagrams.net(或你们的自建版本),导入后先别急着改图,先做两项检查:

  • 检查文字是否还是文字:双击用例名称,能否进入编辑?
  • 检查线是否还是线:点选 include/extend 的虚线箭头,能否调整端点?

如果你发现:

  • 文字变成了不可编辑的路径
  • 整张图只能选中一坨

那就说明当前导出链路不适合“可编辑交付”。此时要回到第 2 步换格式,或者改为“在 diagrams.net 里重画”,别在错误链路上硬修。

第 4 步:整理图层、分组、命名(让别人接得住)

团队协作最怕的不是“画得丑”,而是“别人不敢动”。建议做这些最小整理:

  • Actor 一组、用例一组、关系线一组:至少保证移动 Actor 不会把线拉断得一塌糊涂
  • 系统边界命名清晰:边界框标题写“系统名/子系统名”,别写“系统边界”四个字就结束
  • 关键元素命名:对重要用例/模块,给分组起名(右侧格式面板里可设置)
  • 避免过度组合:组合太深会让编辑体验很差,保持 1–2 层即可

第 5 步:做一次“导出/提交前的视觉一致性修复”

导入后最常见的小毛病:字体不一致、线宽不一致、箭头样式不一致。

建议你在 diagrams.net 里做一次统一:

  • 统一字体、字号(例如:Actor 12pt,用例 12pt,边界标题 14pt)
  • 统一线条样式(include/extend 的虚线、泛化的空心三角)
  • 统一颜色(尽量黑白灰;彩色仅用于强调)

目标是:同一类元素看起来像同一个人画的

第 6 步:保存为 .drawio,并按团队方式提交

  • 如果进仓库:建议把文件命名为 usecase-xxx.drawio,并与对应需求文档同目录
  • 如果发给同事:优先发 .drawio,同时附一张 PNG 方便快速预览
  • 如果要贴到在线文档:贴 PNG 用于阅读,.drawio 放在附件/云盘用于编辑

提交/评审时的实用约定(建议团队统一)

下面这些约定不复杂,但能让协作顺畅很多:

  • 文件命名usecase-<模块>-<范围>.drawio,例如 usecase-payment-checkout.drawio
  • 一个文件一张主图:不要把十张图塞进一个文件的十个页面(除非你们约定就是这样)
  • 图上标注版本信息:右下角加小字:范围/作者/日期(不要太大,避免遮挡)
  • 变更记录写在 PR/文档里:图里不写长段“修改说明”,把修改点写到提交说明中

常见问题排查

1) 导入后文字全乱、对不齐怎么办?

优先检查:

  • 你导出的字体在当前环境是否存在(缺字体会被替换)
  • 源工具是否用了大量自动换行/文本框自适应

处理建议:

  • 在 diagrams.net 中统一字体(Format → Text)
  • 尽量把长文本改成短名称,把解释放到文档正文

2) include/extend 的箭头样式不对,如何快速修?

在 diagrams.net 中:

  • 选中关系线 → 设置线型为虚线
  • 箭头端点选择合适样式(通常 include/extend 用开放箭头)
  • 在线上加标签“<> / <>”并保持格式一致

3) 只拿到 PNG,能不能“转成 draw.io”?

严格来说不行。PNG 没有形状与文本的结构信息,导入后最多是底图。

可行的做法是:

  • 把 PNG 作为背景锁定
  • 在 diagrams.net 上面重画关键元素(Actor、用例、关系)

如果你经常遇到“只剩 PNG”的情况,建议从源头要求:交付时同时提供 .drawio(可编辑)+ PNG(预览)。

需要更快?用在线生成器先把骨架搭起来

当你只是想把“模块—参与者—用例—关系”先落地成一张可编辑图,再慢慢调整排版,在线生成器会更省时间。

你可以用这个工具先生成一个基础版本(支持导出后再到 diagrams.net 继续改):

如果你想把团队现有的需求描述直接变成用例图,也可以先生成一个“可讨论的草稿”,在评审里再一起改。

另外,如果你已经确定了用例列表,但不确定 include/extend 或泛化该怎么画,可以先用生成器出一版,再对照本文的检查清单逐项调整:

最后给你一份提交前检查清单(可复制到 PR)

  • 提交的是 .drawio(可编辑),并附预览 PNG(如需要)
  • Actor/用例/关系线可单独选中并编辑
  • 字体、字号、线宽、箭头样式统一
  • 系统边界命名清晰,范围明确
  • include/extend/generlization(泛化)方向正确、标注一致
  • 图中没有过长段落,解释放在文档正文

把“可编辑的用例图”交付出来之后,团队协作会轻松很多:该改就改,不用每次都从头重画。