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 })
}

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

效果展示:

更多问题可查阅以下链接

相关推荐
那些年丶ny8 小时前
颜色扩展库
前端·javascript·数据可视化
於 兔シ13 小时前
Apache Superset 二次开发实践:接入 AI Agent,并确保数据权限不被绕过
ai·数据分析·agent·数据可视化·bi·superset·数据权限
极光代码工作室2 天前
基于Spark的日志监控与分析平台
大数据·hadoop·python·spark·数据可视化
慧都小妮子2 天前
ThingsBoard PE 智慧能源:打造企业数字化能源管理平台
运维·物联网·能源·数据采集·数据可视化·thingsboard·制造业数字化
databook3 天前
当散点图不够用时:用 t-SNE 可视化多维数据
python·数据分析·数据可视化
Strayer3 天前
拓扑管网 3D 可视化大屏demo:科技感(地图 + 拓扑 + 3D 空间)
前端·three.js·数据可视化
datagear4 天前
DataGear 6.0.0 新特性之本地图表
数据分析·html·数据可视化
晁阳4 天前
Three.js 带主题切换的数据可视化大屏 —— 技巧与实现
数据可视化
码哥字节5 天前
ECharts 8 个实战技巧,从配置到性能全覆盖
echarts·数据可视化·前端性能优化