在Highcharts导出中使用A3页面

时间:2014-09-01 01:15:02

标签: javascript pdf highcharts

我正在将Highcharts图表和HTML表格导出为PDF,但是当我的表格很大时,它无法正确放置在PDF页面中。

我使用以下方式导出PDF:

Highcharts.getSVG = function(charts) {
    var svgArr = [],
        top = 0,
        width = 0;

    $.each(charts, function(i, chart) {
        var svg = chart.getSVG();
        svg = svg.replace('<svg', '<g transform="translate(0,' + top + ')" ');
        svg = svg.replace('</svg>', ' <h2 style="position: absolute; color: #333; right: 0px; width: 50%; top: 10px; text-align: center">' + titulo + '</h2></g>');

        top += chart.chartHeight;
        width = Math.max(width, chart.chartWidth);

        svgArr.push(svg);
    });

    tabela = $("#mainTabela").clone();
    top += tabela.height();

    svgArr.push('<g transform="translate(0,' + top + ')">' + tabela.html() + '  </g>');
    return '<svg height="'+ top +'" width="' + width + '" version="1.1" xmlns="http://www.w3.org/2000/svg">' + svgArr.join('') + '</svg>';
};

导出时有一种方法可以使用A3页面吗?或者只是使用更大的页面?

表格的示例除以不同的页面:

Table divided by pages

2 个答案:

答案 0 :(得分:0)

您可以设置自己的导出服务器并编辑highcharts-convert.js文件,以使页面大小适应您的期望。

价: - http://www.highcharts.com/docs/export-module/setting-up-the-server

答案 1 :(得分:0)

问题是我得到了表克隆的高度,即0。所以我的PDF的高度始终是图表高度,忽略了表的大小。

我刚改变了:

top += tabela.height();

有:

    if($("#mainTabela").height() > top)
        top = $("#mainTabela").height();

它现在正在工作