导出通过循环到单个pdf生成的多个Highcharts

问题描述 投票:1回答:1

我已经创建了某些极坐标图,并且要求将所有结果导出为一个pdf。这些极坐标图在一定间隔内被渲染到同一容器中。因此,我以3秒的间隔使用setInterval,并在setInterval方法中填充了图表。现在,我需要将所有这12个图表导出为一个pdf。

var i=0;
  var interval = setInterval(function() {
            let data1= [];
            let data2= [];
            let data3= [];
            let datetime= [];
//These arrays are filled with some logic in this part
            this.populateFiveMinSpider(data1,data2,data3,datetime);
            i++;
            if(i === 12) {
                clearInterval(interval);
             }
         }
     }, 3000)
 }

我尝试在加载后将每个图表保存到本地,然后单击“下载”按钮,从服务器端(java)将所有本地文件合并为一个pdf。但这只是在本地创建文件,而无需单击按钮下载。而且,在加载每个图表之后,都会出现可见的下载栏,这并不符合要求。

 events: {

            load: function () {
                var chart = this;
                    setTimeout(function () {
                        // EXPORT THE CHART HERE
                        chart.exportChart({
                            type: 'application/pdf',
                            filename: 'my-pdf'+date,
                            sourceWidth: 1100,
                            sourceHeight: 600,
                            scale: 1,
                        });
                    }, 1000);
                }
        }

此代码用于下载单独的pdf。然后,我尝试获取pdf而不用getPDF()方法下载。

只需单击一下,帮助我下载这些文件。任何帮助表示高度赞赏。

javascript highcharts
1个回答
0
投票

整个过程可以通过JavaScript完成。您可以在SVG中创建一些图表布局,然后将其导出为PDF:

$('#export-pdf').click(function() {
    Highcharts.exportCharts([chart1, chart2, chart3, chart4], {
        type: 'application/pdf'
    });
});

实时演示: http://jsfiddle.net/BlackLabel/v0p6hce8/

有用的线程: https://www.highcharts.com/forum/viewtopic.php?t=40493

© www.soinside.com 2019 - 2024. All rights reserved.