drawio-desktop 教程:本地图表编辑器,批量导出 6 种格式,Visio 文件兼容
【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop
drawio-desktop 是 draw.io 的官方 Electron 桌面构建,让你在本地离线环境打开、编辑并批量导出 VSDX、CSV、Mermaid 等图表文件。如果你的团队 Mac 和 Linux 混用、要处理同事发来的 Visio 文件,或需要随文档发布交付一批 PNG 图,它可以替代逐个打开界面操作的工作。当前版本 32.4.1(见 package.json 的 version 字段),采用 GPL v3 许可,不修改代码即可用于任何用途。
跑通第一次(最小上手路径)
前置条件:Node.js 22.12 及以上(package.json 的 engines 声明为 >=22.12.0)加 npm,安装依赖阶段需要联网。
git clone --recursive https://gitcode.com/GitHub_Trending/dr/drawio-desktop cd drawio-desktop npm install npm start第 1 条命令的--recursive不能省:核心编辑器 drawio 是 git submodule,漏掉它 drawio/ 目录是空的,应用无法启动。npm install完成后依赖落进 node_modules;npm start启动编辑器窗口。
启动后界面分三块:左侧形状库、中央网格画布、右侧属性面板,拖一个矩形进画布即可开始画图。排障用两个开关:npm start --enable-logging打开日志输出,报错信息会打印到终端;DRAWIO_ENV=dev npm start会自动打开浏览器 DevTools。
高频任务
单文件导出为 PNG/PDF/SVG
场景:图表画完,需要一张 PNG 贴进文档,或一份 PDF 归档。
drawio -x -f png -o flowchart.png architecture.drawio-x启用导出,-f指定格式(pdf、png、jpg、svg、xml、html 共 6 种,不写默认 pdf),-o指定输出文件;输出名带扩展名时以扩展名为准。结果:命令结束,flowchart.png 生成在 -o 指定的位置。
Visio VSDX 文件直接转换
场景:同事发来 .vsdx,你的机器是 Mac 或 Linux,没有 Visio。
drawio -x -f svg -o design.svg design.vsdxVSDX(以及 CSV、Mermaid 的 .mmd/.mermaid)都在支持的输入列表里,直接当输入文件,不需要先转成别的格式。结果:生成 design.svg,图表内容完整保留,可再用 drawio 打开继续编辑。
整目录批量导出 PNG
场景:docs 目录下有 20 张架构图,要随发布说明一起交付 PNG。
drawio -x -f png -r -o ./docs-images ./docs-r递归处理子目录(只对文件夹输入生效),输出文件与输入同名、扩展名换成 .png;加-k则跳过已有输出文件的条目,适合反复运行的增量导出。结果:一条命令跑完,20 张 PNG 全部落在 docs-images 目录。
它能不能做什么
| 对比项 | drawio-desktop | Microsoft Visio | 在线绘图工具 |
|---|---|---|---|
| 平台 | Windows(x64/ARM64)、macOS 13+、Linux 官方包 | 以 Windows 为主 | 依赖浏览器 |
| 费用 | 免费(GPL v3) | 需购买授权 | 免费或订阅制 |
| 数据流向 | 完全本地,唯一外连是每日版本检查 | 本地 | 文件需上传服务器 |
| 输入格式 | drawio、VSDX、CSV、Mermaid | 原生 VSDX | 因工具而异 |
| 输出格式 | PDF、PNG、JPG、SVG、XML、HTML 共 6 种 | 视版本而定 | 因工具而异 |
它也有两个明确的边界:
- 不接受贡献:项目对社区 PR 关闭(见 README.md 的 "Not open-contribution" 一节);但 GPL v3 允许你 fork 后修改并构建个人版本,流程在 doc/BUILDING_FOR_PERSONAL_USE.md。
- 系统要求:不提供 32 位 Windows 包,macOS 需 13 及以上(Electron 44 移除了 ia32 与 macOS 12 支持)。
避坑与细节
常用参数
完整参数定义在 src/main/args.js,高频的几个:
-k(--check):不覆盖已存在的输出文件,配合批量导出做增量--page-range 1..4:按 1 起始的页码选页,仅对 PDF 格式生效-e(--embed-diagram):把原图嵌入 PNG/SVG/PDF,导出后还能再编辑;纯展示图片不建议用,文件会变大-q 90:JPEG 输出质量,默认 90,要更小的文件就调低
性能
--size diagram(默认)把输出裁到图表内容范围,比整页导出更轻;需要完整页面时才用--size page--layout verticalFlow:导出前跑一次布局算法,预设名有 verticalFlow、horizontalFlow、verticalTree、horizontalTree、radialTree、organic,复杂文件耗时更长--timeout 60:单文件超过 60 秒记为失败并继续下一个,默认 0 表示不限;批量任务防坏文件卡死时用
安全与隐私
DRAWIO_DISABLE_UPDATE=true或--disable-update:关闭更新检查,这是应用唯一的外连动作(每天一次),相关逻辑在 src/main/electron.js- 不要打开不可信来源的图表:图表可引用外部图片、背景或字体,打开时会请求这些 URL,把你的 IP 暴露给对方服务器
- 应用的 CSP 禁止远程 JavaScript,图表数据与使用统计都不外传
快速问答
Q:如何验证命令行可用?A:运行drawio -V,能打印版本号(当前 32.4.1)即可;drawio -h查看完整参数列表。
Q:Windows 没有管理员权限,装哪个包?A:选.msi(按用户安装,不需要管理员)或便携版 zip(免安装,但不注册文件关联);NSIS 的.exe是按机器安装,需要管理员权限。
Q:源码方式启动不了怎么办?A:先确认 clone 时带了--recursive,否则缺编辑器 submodule;然后用npm start --enable-logging打开日志输出,看终端报错;需要 DevTools 就改用DRAWIO_ENV=dev npm start。
把 6 种格式各跑一遍,感受 PDF 和 SVG 的差别;再把带-k的批量导出命令写进文档发布脚本。命令行熟悉之后,图表文件对你来说就不再是平台问题了。
【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考