☰
drawio-desktop 快速指南:Visio 文件批量转换与 6 种格式图表离线导出
2026/10/22 7:14:49 网站建设 项目流程

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-desktopMicrosoft 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.vsdx

VSDX 是-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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询