【问题标题】:Render ApexCharts PNG file in the backend?在后端渲染 ApexCharts PNG 文件?
【发布时间】:2020-03-31 10:14:04
【问题描述】:
在 ApexCharts 工具栏中,有一个选项可以将图表下载为 PNG 文件。有没有办法在 NestJs(或 Node)后端自动生成静态 PNG 文件,在元标记中使用这些静态图像进行开放图形和社交共享?
更新:图表库似乎严重依赖浏览器来呈现图形,如果我想这样做,我需要在后端运行浏览器(例如 PhantomJs)。
【问题讨论】:
标签:
angular
backend
nestjs
social-media
apexcharts
【解决方案1】:
没有任何直接的方法可以实现这一点。但是,apexcharts 有一个功能,您可以安装单独的服务器 (FusionExport) 并调用它来将图表呈现为图像或 PDF 文件。你可以找到更多关于它的信息here。
但这是一种付费解决方案。
如果这不适合您,您可以实现像 Headless Chrome 这样的无头浏览器并使用像 Puppeteer 这样的库来调用它。
设置完成后,您可以编写一个简单的脚本来加载图表并在完成后截取屏幕截图,或者您可以使用以下回调从 apexcharts 本身生成图像 (dataURI)。
chart.dataURI().then(({ imgURI, blob }) => {
// use the imgURI as needed
})