highcharts:打印后打印的方式

时间:2015-11-06 15:02:59

标签: highcharts

我在这里讨论了一个问题:取消打印后的页面没有调整图表大小。

https://github.com/highslide-software/highcharts.com/issues/1093

我希望重现那里提到的解决方案。基本上,解决方案是在Highcharts中设置全局选项,如下所示:

    Highcharts.setOptions({
        chart: {
            events: {
                afterPrint: function () {
                    alert('called');
                    Highcharts.charts.forEach(function (chart) {
                        if (chart !== undefined) {
                            chart.reflow();
                        }
                    });
                }
            }
        }
    });

就我而言,页面的工作原理如下:

  1. 加载页面
  2. 启动Ajax调用以检索数据并绘制四个图表。
  3. 我尝试在页面加载或ajax调用之后使用上述解决方案。然而,afterPrint从未被调用过。请注意,我将"警告('称为')"有证明。

    添加全球afterPrint的正确方法是什么?

    问候。

2 个答案:

答案 0 :(得分:1)

我现在就开始工作了。我使用的是版本4.0.4,afterPrint没有按预期工作。现在我使用的是最新版本4.1.9,afterPrint按预期工作,没有任何代码更改。

我在页面加载时调用全局设置。

希望这有帮助。

答案 1 :(得分:0)

我通过在我的脚本中添加以下内容,以更简单的方式完成了这项工作

    Highcharts.setOptions({
        chart: {
            events: {
                afterPrint: function () {
                    jQuery(window).resize()
                }
            }
        }
    });