draw.io 桌面版:Visio 文件离线转换与批量导出图片免费方案
【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop
draw.io 桌面版是一款免费开源的离线画图工具,支持把 Visio 的 VSDX 文件转换后可编辑,也能用命令行把流程图批量导出为 PNG、PDF、SVG 图片,全程不上传任何图表数据。适合需要处理旧 Visio 文件、又找不到免费转换办法的人。
拿到能用的桌面程序
Windows 上选对安装包
官方发布页提供三种 Windows 构建,差别在装到哪里、要不要管理员权限:
*.exe:NSIS 安装器,机器级装进 Program Files,需要管理员权限。*.msi:MSI 安装器,装到当前用户目录,不需要管理员权限。*-no-installer.exe:便携版,双击直接运行,不注册文件类型关联——不能双击文件打开,得先启动应用再用"文件 → 打开"载入。
macOS 和 Linux 在发布页有对应安装包。装好之后,常规安装版直接双击.drawio或.vsdx文件就能打开编辑。
开发者从源码跑起来
只有要参与构建才需要这一步。编辑器核心以 git 子模块挂载,漏掉--recursive后面全白搭:
git clone --recursive https://gitcode.com/GitHub_Trending/dr/drawio-desktop cd drawio-desktop && npm install && npm start构建细节见 doc/BUILDING_FOR_PERSONAL_USE.md,环境要求(Node 版本等)写在 package.json 里。
把 VSDX 和其他格式丢给命令行
VSDX 导入怎么走
双击.vsdx打开时,桌面版在后台启动内置导入页把 Visio 文件解析成可编辑的 draw.io 数据,多页 Visio 文件会对应成多个页面,逻辑在 src/main/electron.js。不打开窗口也能直接转图:
drawio 架构图.vsdx --export --format png --output 架构图.png形状、文字、连线基本保留,但 Visio 专有的部分形状可能走样,交付前对照原图抽查一遍。
还支持这些输入
除.drawio、.vsdx外,命令行还接受.csv(直接渲染成表格图形)、Mermaid(.mmd/.mermaid,由代码生成图表)等格式,完整清单在 src/main/args.js 里。
整个文件夹一次转完
文档目录里有上百张图时,把目录喂给命令行,加--recursive递归子目录,输出指向另一个目录:
drawio ./diagrams --export --format png --output ./exported --recursive传了多个输入文件时,--output必须指向文件夹,指向单个文件会被拒绝,避免互相覆盖。追加--check(-k)可跳过已存在的输出,脚本就能反复执行而不冲掉旧成果。
常用命令行参数怎么配
导出参数速查
界面"文件 → 导出"对话框和这些参数一一对应,一次性导出一张图用界面省事,重复性任务用命令行稳:
| 参数 | 作用 | 什么时候用 |
|---|---|---|
--export(-x) | 导出输入文件 | 所有转换命令都要带 |
--format(-f) | 目标格式:pdf、png、jpeg、jpg、svg、xml、html | 不指定默认 pdf |
--output(-o) | 输出文件或目录 | 值带扩展名时以扩展名为准 |
--size page | 整页导出而不是裁到图表内容 | 要保留完整页面留白时 |
--layers 0,2 | 只导出指定图层索引 | 图里只有一层是要用的内容时 |
--layout verticalFlow | 导出前套用内置布局 | 图比较乱、想先整理再出图时 |
-t | PNG/SVG 透明背景 | 图要贴到幻灯片或网页上时 |
-s 2 | 整体缩放倍数 | 导出后放大不糊时 |
--page-index 2 | 指定导出第几页(1 起始) | 图片格式只出其中一页时 |
-q 80 | JPEG 质量 0-100 | 压小 jpeg 文件体积时 |
--crop | PDF 裁到图表实际大小 | 不想留大片白边时 |
两个容易忽略的细节
--page-range 1..3只支持 PDF 格式,1 起始的页范围;--all-pages则是 PDF/HTML 格式导出全部页面。参数边界行为的完整覆盖在 src/test/cli-args.test.js,拿不准写法时直接翻测试。
能做到的和做不到的
明确的边界
- 单向能力:VSDX 只进不出,导入后可编辑、可导出图片,但写不回
.vsdx。 .vsd(Visio 旧版二进制格式)不受支持,需要文件发送方先另存为.vsdx。- 特殊连接件、数据绑定这类 Visio 专有高级功能支持有限。
和其他工具比一比
| 维度 | draw.io 桌面版 | 在线转换工具 | Microsoft Visio |
|---|---|---|---|
| 数据位置 | 完全本地 | 需上传文件 | 本地 |
| 支持平台 | Windows / macOS / Linux | 浏览器 | 仅 Windows |
| 费用 | 免费(Apache 2.0) | 多收费或带广告 | 需购买授权 |
| VSDX 读写 | 只导入,可转图片 | 单向,可控性弱 | 原生双向读写 |
| 批量脚本 | 命令行 + 递归目录 | 基本没有 | 有限 |
如果你的情况是文件不能离开本机、或者机器是 Linux/macOS,选桌面版;一次性转换且内容不敏感,选在线工具;流程必须写回.vsdx,选 Visio 本体。团队已经把画图迁到在线平台的话,桌面版的增量价值在离线可用和文件归属——图表是本地文件,不是服务器上的链接。
数据放哪、能不能彻底离线
本地存储与网络行为
README.md 把设计目标写得很直白:图表数据从不外发,唯一的外部请求是启动时的版本检查,不发送任何使用分析。应用自身的设置与会话信息存在本地目录:
- macOS:
~/Library/Application Support/draw.io - Windows:
C:\Users\<用户名>\AppData\Roaming\draw.io - Linux:
~/.config/draw.io
完全离线的两个开关
设置环境变量DRAWIO_DISABLE_UPDATE=true,或启动时加--disable-update,版本检查就关掉了,应用此后完全离线运行;判定逻辑在 src/main/disableUpdate.js。
一个值得留意的点:图表可以内嵌外部 URL 的图片、背景或字体,打开时应用会去抓取这些资源。不发送图表内容,但可能把网络信息暴露给被引用的服务器——来路不明的文件谨慎打开。
行动清单
- 找一张旧 Visio 文件跑一次
--export --format png,把输出和原图逐元素比对,确认保真度再定批量策略 - 把批量导出命令固定加上
--check,写进定期任务,转图不覆盖既有成果 - 把
.drawio文件纳入 Git 追踪变更,图表是纯文本 XML,可以直接 diff
【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考