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

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

效果展示:

更多问题可查阅以下链接

相关推荐
码云之上1 天前
从 SQL DDL 到 ER 图:前端如何优雅地实现数据库可视化
前端·数据库·数据可视化
王霸天2 天前
💥别再抄网上的Scale缩放代码了!50行源码教你写一个永不翻车的大屏适配
前端·vue.js·数据可视化
Ulyanov2 天前
Python与YAML的优雅交响:从配置管理到数据艺术的完美实践 (一)
开发语言·前端·python·数据可视化
Ulyanov3 天前
从零构建现代化Python音频播放器:ttk深度应用与皮肤系统设计
python·架构·音视频·数据可视化
Highcharts.js3 天前
Highcharts 命令行渲染指南:如何使用 Node 导出服务器批量生成图表图片
服务器·数据可视化·导出·命令行·图表·highcharts
李昊哲小课4 天前
Python办公自动化教程 - 第7章 综合实战案例 - 企业销售管理系统
开发语言·python·数据分析·excel·数据可视化·openpyxl
李昊哲小课4 天前
Python办公自动化教程 - 第5章 图表创建 - 让数据可视化
python·信息可视化·数据分析·数据可视化·openpyxl
莹宝思密达4 天前
地图显示西安经济开发区边界线-2023.12
前端·vue.js·数据可视化
可观测性用观测云4 天前
告别“巡检早高峰”:利用观测云定期报告实现高效异步巡检
数据可视化
山海鲸实战案例分享6 天前
【数字孪生实战案例】如何配置下拉菜单交互逻辑,实现点击选项自动切换展示图片、视频及监控画面?~山海鲸可视化
数字孪生·数据可视化·零代码·实战案例·网络地址·山海鲸可视化·数据联动