drawio-desktop 完整指南:Visio 文件本地转换与 6 种格式批量导出
【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop
用 drawio-desktop 本地导入导出 Visio 文件
一份画在 Windows 上的.vsdx图稿,发给 Mac 或 Linux 同事大概率打不开:Visio 只在 Windows 原生运行,走在线转换又要把图传到第三方服务器。drawio-desktop 是一个基于 Electron 的免费桌面应用,Apache 2.0 许可:把.vsdx、.csv、Mermaid 文件拖进去就能直接打开编辑,再导出 PDF、PNG、JPEG、SVG、XML、HTML 六种格式,全程在本机完成,图纸文件不出电脑。
drawio-desktop 安装方式:下载、商店版与源码运行
| 路径 | 拿到什么 | 适合谁 |
|---|---|---|
| 官方发布页下载 | Windows 有 MSI / NSIS / 便携版 / APPX 四种;macOS 为 dmg / zip;Linux 为 AppImage / deb / rpm / snap | 日常使用。MSI 按用户安装,无管理员权限的机器也能装 |
| Windows 商店版(APPX) | 商店通道的安装包,同样不需要管理员 | 公司设备策略只允许商店应用 |
| 源码运行 | 从源码树直接跑应用 | 想改窗口、菜单、自动更新逻辑,或验证自己打的包 |
前两种去官方发布页挑对应平台的构建产物即可。Windows 四种形态分工明确:NSIS 装进 Program Files 并注册文件关联(需管理员权限),MSI 按用户安装,便携版免安装但不注册文件类型。官方构建目前只覆盖 Windows x64 / arm64 与 macOS 13 及以上,32 位 Windows 已被放弃,老环境只能停留在旧版本。
源码运行需要 Node.js 22.12 以上(package.json的engines字段写死):
git clone --recursive https://gitcode.com/GitHub_Trending/dr/drawio-desktop cd drawio-desktop npm install npm start关键是--recursive:核心编辑器是以 git 子模块放在drawio/目录下的,普通 clone 会留空这个目录,启动时找不到编辑器;已经 clone 过的目录补一句git submodule update --init即可。还有一个容易困惑的点:draw.io 每个用户只允许跑一个实例,如果官方应用正开着,从源码启动只是往官方应用里加了个窗口,你看到的改动"不生效",先退出所有 draw.io 再启动。
外壳代码都在src/main/下:src/main/electron.js 负责窗口管理、菜单与自动更新,命令行解析是手写的,核心编辑器则作为子模块独立迭代。自己要打包安装程序时先执行npm run sync,它把版本号从子模块的drawio/VERSION写进package.json(逻辑见 sync.cjs);设置DRAWIO_UNSIGNED=true可跳过签名与公证,但这个变量只在当前终端会话有效,每条打包命令所在的窗口都要重新设置。
核心能力拆解:单文件转换、批量导出与自动重排
应用界面是左右中三栏:左侧图形库与图层,中间画布,右侧形状属性。.vsdx导入后图形、文字、连线都保留,可以直接接着画。
单文件转换:一条命令把 .vsdx 变成 PNG
一张图要进 PPT,不想为它打开应用再走一遍导出对话框:
drawio design.vsdx --export -f png -o design.png--export(简写-x)触发无头导出,-f指定输出格式。合法格式一共六种:pdf、png、jpeg、svg、xml、html。-o省略时默认用输入文件名加所选格式作为输出。
批量导出:递归处理整个目录
一整个文件夹的图要批量出图,直接把目录传进去:
drawio docs --export -r -f pdf -o docs_pdf-r递归扫描所有子目录,输出落在docs_pdf/且保留原目录结构。再加-k(--check)会跳过已存在的输出文件,重复执行时不会覆盖你手工改过的 PDF。导出扫描出于安全考虑会跳过目录里的符号链接且不跟随,目录里放一个指向别处的.csv链接不会把它指向的内容渲染进导出结果。
自动重排:--layout 给乱掉的图重新布线
工具生成的图或连线漂移的图,不用手工拖:在导出命令里加--layout,预设名有 verticalFlow(纵向流)、horizontalFlow、verticalTree、horizontalTree、radialTree、organic(有机散列),布局在打开文件后、导出前生效。对程序生成的图建议同时加--normalize,它先修复模型里悬空的边和缺失的几何信息,但不会移动作者手动摆放的形状。PNG/SVG 导出时加-t得到透明背景。
实战场景:技术文档批量出图与课件多端分发
场景一:技术文档批量出图。输入:docs/目录内放齐全部.drawio和.vsdx。执行:
drawio docs --export -r -f pdf -o docs_pdf -k
-r递归扫描子目录,-k保护已存在的输出,产物按原目录层级落在docs_pdf/,直接取用。
场景二:课件发给多端学生。老师画完教学流程图后执行:
drawio lesson.drawio --export -f html -o lesson.html
HTML 里自带图表数据和查看器,学生双击lesson.html就能缩放、平移,不需要装 drawio;老师侧保留.drawio源文件,下学期改版时改源文件重新导出即可。
参数细节:格式判定、页范围与尺寸控制
参数清单全部定义在 src/main/args.js,执行drawio --help可以一次看全。真正容易踩坑的高频组合是这几条:
- 输出文件名带扩展名时,格式由扩展名决定,
-f直接被忽略。drawio x.drawio --export -o x.pdf出 PDF,再加-f png也不管用。 -b设裁边留白,-s是缩放倍数,--width/--height按固定宽度或高度出图(保持宽高比);--size page把输出模式从默认的"裁到图内容"切换成整页。- PDF 用
--page-range 1..3只导指定页(从 1 计);-a导出全部页(仅 PDF 和 HTML);-p选单页,图片格式不指定时默认第一页。 -t透明背景只对 PNG/SVG 生效;--embed-diagram往 PNG/SVG/PDF 里嵌一份可编辑的图表副本,图从文档里取回 draw.io 时仍然能继续编辑。- 输入不限于
.drawio:.vsdx、.csv、.mmd/.mermaid都进同一条导出管线;-q调 JPEG 质量,默认 90。
数据与信任:图纸不离开本地磁盘
应用在设计上与互联网隔离:没有图纸数据外发,没有使用统计上报,内容安全策略禁止执行远程加载的脚本,文件读写还要经过路径授权校验。唯一的例外是启动时的版本检查,设环境变量DRAWIO_DISABLE_UPDATE=true或带--disable-update参数启动即可关掉。设置和缓存都在用户目录:macOS 为~/Library/Application Support/draw.io,Windows 为C:\Users\<用户名>\AppData\Roaming\draw.io\,Linux 为~/.config/draw.io。注意一点:图里如果引用了远程图片,打开时仍会向那个 URL 发请求,但请求里不包含图纸内容。
与在线转换和商业 Visio 的横向对比
| 维度 | drawio-desktop | 在线转换服务 | 商业 Visio |
|---|---|---|---|
| 数据流向 | 全程本地,不上传 | 图纸需传到服务器 | 本地 |
| 平台覆盖 | Windows / macOS / Linux | 浏览器即可 | 仅 Windows |
| 费用 | Apache 2.0 开源免费 | 按次或订阅 | 商业授权 |
| 格式互操作 | 导入 .vsdx / .csv / Mermaid,六种格式导出 | 多为单向转换 | Visio 原生格式 |
| 离线可用 | 可用 | 必须联网 | 可用 |
接下来可以从三件事入手:先拖一份现有的.vsdx进应用,分别导出 PNG 和 HTML,对照原件确认转换质量;再挑一个图多的目录跑一遍带-r -k的批量命令,确认参数组合在你的目录结构下生效;长期部署的机器把DRAWIO_DISABLE_UPDATE=true设好,顺手记下本机数据目录的位置。想动手改外壳的话,项目不接受外部 PR,但 Apache 2.0 允许你 fork 自用,官方把从 fork 构建未签名版本的步骤写在 doc/BUILDING_FOR_PERSONAL_USE.md 里。
【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考