highcharts

Highcharts: the way to call afterPrint


I have an issue discussed here: Page after canceling print doesn't resize chart.

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

I am hoping to reproduce a solution mentioned there. Basically, the solution is to set global options in Highcharts as follows:

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

In my case, the page works as below:

  1. Load the page
  2. Start an Ajax call to retrieve data and draw four charts.

I tried to use the above solution either at page load or after the ajax call. However, afterPrint was never called. Note that I put "alert('called')" there to prove it.

What is the right way to add global afterPrint?


Solution

  • I got it working now. I was using version 4.0.4, with which afterPrint did not work as expected. Now I am using the latest version 4.1.9 and afterPrint works as expected without any code change on my side.

    I call the global setup at the page load.

    Hope this helps.