AntV X6/Xflow 导出 svg/png/jpeg 问题解决

AntV X6/Xflow 导出 svg/png/jpeg 问题解决

导出 svg/png/jpeg 时,处于画布边缘的节点的连接桩或 label 标签显示不完整

问题截图:

界面

导出的图片

解决办法:

  1. 导出 png/jpeg 格式可以通过设置Export.ToImageOptionspadding 解决
  2. 导出 svg 格式,Export.ToSVGOptions暂无直接可用的 padding 配置,所以我的方式是使用getContentBBox获取画布内容的矩形区域,并进行一定的数值增减,将其作为导出时的 viewbox
tsx 复制代码
import React, { useEffect, useRef } from 'react'
import { Graph, Rectangle, useExport, useGraphInstance } from '@antv/xflow'

const handleExportPng = () => {
  exportPNG('png-chart', { padding: 20 })
}

const handleExportJpeg = () => {
  exportJPEG('jpeg-chart', { padding: 20 })
}

const handleExportSvg = () => {
  const box = graph.current?.getContentBBox()
  const { x, y, width, height } = box as Rectangle
  const viewBox = {
    x: x - 20,
    y: y - 20,
    width: width + 40,
    height: height + 40
  }
  exportSVG('svg-chart', { viewBox })
}

如有更好的解决办法,欢迎在评论区交流讨论

效果展示:

更多问题可查阅以下链接

相关推荐
云天徽上5 小时前
【数据可视化】🌩️ 北京密云区2025年7月暴雨深度分析:Python + Pyecharts 炫酷大屏可视化(包含完整数据、代码)
数据可视化
云天徽上11 小时前
【数据可视化】电信用户流失数据可视化分析:Python + Pyecharts 炫酷大屏(含完整数据、代码)
数据可视化
云天徽上13 小时前
【数据可视化】全球不同年龄段身高数据可视化分析:Python + Pyecharts 炫酷大屏
数据可视化
德育处主任1 天前
p5.js 正方形square的基础用法
前端·数据可视化·canvas
德育处主任1 天前
p5.js 矩形rect绘制教程
前端·数据可视化·canvas
敲敲敲敲暴你脑袋2 天前
Cesium绘制3D热力山丘图
数据可视化·canvas·cesium
德育处主任3 天前
p5.js 四边形(quad)的基础用法
前端·数据可视化·canvas
叫我:松哥3 天前
基于网络爬虫的在线医疗咨询数据爬取与医疗服务分析系统,技术采用django+朴素贝叶斯算法+boostrap+echart可视化
人工智能·爬虫·python·算法·django·数据可视化·朴素贝叶斯
Watermelo6173 天前
极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图
前端·javascript·vue.js·数据挖掘·数据分析·流程图·数据可视化
山烛3 天前
Python 数据可视化之 Matplotlib 库
开发语言·python·matplotlib·数据可视化