Navicat无法直接打印超大型ER图,应改用Export→As Image导出PNG/SVG:需先解锁所有表并执行Auto Layout,勾选Wrap column names、Use anti-aliasing,降级字体,分Group导出后合并PDF。
Navicat 里直接「打印超大型数据库的ER全景图」这件事,本质上不可行——它没有语义分页能力,硬塞进A4纸只会截断表、压扁字体、飞出连线。你不是操作错了,是路径选错了。
别用 File → Print,改用 File → Export → As Image(PNG/SVG)
「打印」菜单走的是系统原生打印通道,完全无视er图的逻辑结构,只按当前窗口像素硬切;而「导出为图片」能保留矢量信息、支持抗锯齿、可手动控制画布范围。
-
Export前必须先激活模型编辑器(标题栏为蓝色),不能在数据库连接页或子标签页里操作 - PNG格式务必勾选
Use anti-aliasing(该选项仅在主菜单导出时出现,右键菜单不提供) - SVG导出后中文会转成路径——适合缩放查看,但无法在浏览器里搜索/复制文字;若需编辑,得用 Inkscape 手动解组
- 导出分辨率建议设为
300 dpi,否则PDF嵌入后打印模糊
导出前必须解锁所有表并重跑 Auto Layout
只要有一个表被拖过位置,或勾选了 Lock Position,Auto Layout 就退化为局部微调,导致布局松散、空白失控。这不是算法问题,是状态锁住了。
- 全选所有表:
Ctrl+A,看右下角状态栏是否显示X tables locked - 有锁定就批量解锁:
Ctrl+Shift+L(Navicat 15.5+ 支持),老版本只能单个右键取消Lock Position - 解锁后点
Layout → Auto Layout,等几秒直到连线稳定,再导出 - 别信「自动适应画布」——它只缩放视觉,不重排逻辑;真正有效的是先解锁 + 再布局
超大图导出后仍挤成一团?试试 Wrap column names + 字体降级
字段名过长(比如 user_last_login_timestamp_utc_offset_minutes)会撑爆表框,尤其在导出为PNG时。Navicat不自动换行,但提供了一个隐藏开关。
- 在模型编辑器中,点击任意表 → 右键 →
Properties→ 勾选Wrap column names(仅对当前视图生效,导出后不可逆) - 若仍有溢出,把模型页字体临时改成
Microsoft Sans Serif或DejaVu Sans(避免用思源黑体等复杂字体),重启模型页再导出 - PDF空白多?不是留白太多,是字体未嵌入。导出PDF时取消勾选
Embed fonts,改用系统基础字体
真正可控的分页:Group + 单独导出
想让500张表的ER图“分页打印”,唯一靠谱做法是人工划分逻辑模块,用 Group 功能聚类,再逐个导出。Navicat不支持按依赖层级自动切片,也不响应外键拓扑。
- 选中相关表(如用户中心所有表)→ 右键 →
Create Group→ 双击标题栏重命名为auth_module - 点击该Group使其高亮(边框变蓝),再执行
File → Export → As Image,此时只导出组内内容,自动适配画布 - 每个Group导出一张PNG,用PDF工具(如pdfjam)合并:
pdfjam --a4paper --scale 0.95 *.png -o er_pages.pdf - 千万别用「Fit to Page」或「Shrink to fit」——它们会无差别压缩连线粗细和字体,导致关系线叠在一起无法分辨



















