我有一个没有高度或宽度的图表。
当我点击打印按钮时,我希望获得更高和更大的图表。我尝试过setSize(),但由于我不知道我的图表的原始大小(因为没有),我无法像以前那样调整它的大小,结果得到了一个巨大的图表。
我还尝试在另一个div中创建图表的副本(通过改变renderTo、width和height属性),但没有成功。几个小时过去了,我感到很困惑。
我应该怎么做才能拉伸我的图表,以便在不修改原始图表的情况下打印它?
谢谢您的帮助。
$('#container').highcharts({
series: [{
data: [1, 2, 3]
}]
});
$("#b").click(function() {
var chart = $('#container').highcharts();
chart.setSize(200,500, false);
chart.print();
setTimeout(function() {
chart.setSize(600,500, false);
}, 1000);
});
$('#container').highcharts({
series: [{
data: [1, 2, 3]
}]
});
$("#b").click(function() {
var chart = $('#container').highcharts();
chart.setSize(200,500, false);
chart.print();
chart.setSize(600,500, false)
});
chart.chartHeight
或chart.chartWidth
(其中var chart = $('#chart-container').highcharts();
)来收集(因此存储以供稍后重置)图表的当前大小。setSize()
进行打印后,如果窗口更改,图表将不再自动调整大小。您可以使用此处详细介绍的'黑客'来修复:
在调用Chart.setSize()后修改chart.hasUserSize是否是一种不好的做法?
其中包括设置chart.hasUserSize=false;
挂钩before和after打印事件
在此问题上处理:现代浏览器是否支持onbeforeprint/onafterprint HTML事件?答案是(间接)肯定的,但您必须使用onbeforeprint事件和watchMedia事件处理程序API的组合。
this.setSize(1550, 900); this.print(); this.setSize(350, 290);
- Grégoire Borel