drawio-desktop 快速指南:Visio 文件批量转换与 6 种格式图表离线导出
【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop
同事从 Windows 发来的 .vsdx 文件,你在 Mac 或 Linux 上打不开;界面里一张张导出图片又太慢。drawio-desktop 是 draw.io 的官方桌面构建:直接转换 Visio 文件、离线批量导出图表为 6 种格式,全程本地完成,不上传任何内容。
先比一比:它凭什么被选
结论先说:要免费、跨平台、离线且能吃 Visio 文件的图表工具,它是目前唯一的官方选项。
定位就三点:
- 官方桌面构建:draw.io 的官方 Electron 桌面版,Windows、macOS、Linux 三平台都有官方安装包,当前版本 31.4.2
- 免费开源:Apache 2.0 许可,任何用途零成本。它不接收外部 PR,但允许你 fork 后自行修改、构建个人版(构建方法见 doc/BUILDING_FOR_PERSONAL_USE.md)
- 默认离线,数据不出本机:唯一的外连是启动时的版本更新检查;图表内容和使用统计都留在本地,不向外部服务器发送
| 对比项 | drawio-desktop | Microsoft Visio | 在线绘图工具 |
|---|---|---|---|
| 平台支持 | Windows / macOS / Linux 官方安装包 | 以 Windows 为主 | 依赖浏览器 |
| 费用 | 免费(Apache 2.0) | 需购买授权 | 免费或订阅制 |
| 数据处理 | 全程本地处理,不上传 | 本地 | 需把文件传到服务器 |
| 输入格式 | VSDX / CSV / Mermaid 及 drawio 文件 | 原生 VSDX | 因工具而异 |
先把它跑起来
前提只有一个:Node.js 22.12 及以上版本。下面 4 条命令完成克隆、装依赖、启动:
git clone --recursive https://gitcode.com/GitHub_Trending/dr/drawio-desktop cd drawio-desktop npm install npm start注意:
--recursive不能省。核心编辑器放在drawio目录里,它是一个指向另一个仓库的 git submodule;漏了它,该目录会是空的,应用直接起不来。
跑起来之后,drawio-desktop 就能从源码使用了。界面分三块:形状库在左,网格画布在中,属性面板在右。拖一个矩形进画布,第一张图就完成了。
任务一:Visio 文件直接转成你要的格式
场景:拿到同事的 .vsdx 文件,要变成 SVG 嵌进网页文档。
drawio -x -f svg -o design.svg design.vsdxVSDX 是-x导出直接支持的输入类型,交给命令行即可,无需先转成别的格式。再记一条规则:-o指定的文件名带扩展名时,实际输出格式以扩展名为准,-f的值会被忽略。
任务二:一个文件,六种格式随你挑
单文件导出就靠三个参数:-x开启导出,-f定格式,-o定输出文件。可选格式共 6 种:PDF、SVG、PNG、JPG、XML、HTML。
drawio -x -f png -o flowchart.png architecture.drawio提示:加
--embed-diagram会在导出的 PNG、SVG、PDF 里内嵌一份原图副本,导出后还能再次编辑。代价是文件体积变大,图片只用于展示时别加它。
所有参数的完整定义在 src/main/args.js,拿不准时运行drawio -h看全量清单。
任务三:多页文件,只导你要的几页
不必整本导出。--page-range的页码从 1 开始,写法是「起..止」,仅 PDF 格式生效;配合--crop还能把输出裁到图表大小:
drawio -x -f pdf --page-range 1..4 --crop manual.vsdx结果是 PDF 里只有第 1 到第 4 页这 4 页,其余页面不会出现在输出里。
任务四:整个目录的图,一条命令全出
图表批量导出在这里最有价值:docs 目录里有 20 张架构图,给 PR 附图时希望 CI 流程自动出图。以前逐个打开界面是 20 次操作,现在 1 条命令:
drawio -x -f png -r -o ./docs-images ./docs-r只对文件夹输入生效,会把所有子目录递归处理;每个输出文件与输入同名,扩展名换成 .png,落到-o指定的输出目录里。再加-k,已存在的输出会被跳过,反复运行就是增量导出,不会互相覆盖。
这些坑,先替你说清楚
调试与验证
drawio -V打印版本号,drawio -h打印全部参数,拿不准先跑这两条- 源码方式启动有问题时,用
npm start --enable-logging打开日志输出,看终端报错 DRAWIO_ENV=dev npm start会直接打开 DevTools,方便调试界面
效率与性能
--page-index N锁定单页导出;导出图片时不指定页,默认取第 1 页--size默认值是 diagram,输出裁到图表内容,更紧凑;要保留整页时再改 page--layout在导出前跑一次布局(预设名如 verticalFlow,也可传自定义 JSON),复杂文件耗时会变长
部署与安全
- 应用仅有的外连行为是启动版本检查,逻辑见 src/main/electron.js;彻底断网就加
--disable-update,或设环境变量DRAWIO_DISABLE_UPDATE=true - 生产机器上别随手打开来路不明的图表:图里可能嵌有外部图片、背景、字体的 URL,打开时就会向那些地址发起请求,暴露你的 IP
- 界面的 CSP(Content Security Policy)禁止加载远程脚本,代码全程本地运行
- Windows 三种安装包权限不同:.msi 按用户安装,无需管理员权限;portable 是压缩包子,解压即用,不建立文件类型关联;NSIS 按机器安装,要管理员权限
下一步
建议依次试三件事:6 种格式各跑一次;把批量导出命令写进发布脚本,用-k做增量;关注官方 releases 的新版本。做到这些,图表文件的平台问题就彻底解决了。
【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考