我目前正在将我的Google柱形图转换为png,然后使用chart_div.innerHTML
获取网址,将其粘贴到浏览器(Firefox)中。
我的错误是:413。这是一个错误。您的客户发出了太大的请求
有没有办法减少网址的大小?或任何可能的解决方案?我的目标是能够将我的所有4个图表转换为png并打印每个图表,或者至少打印1个。
答案 0 :(得分:0)
答案 1 :(得分:0)
除非您可以访问Google服务器,否则您需要以块的形式获取图表。 HTTP 413表示服务器declined your request,因为它太大了。尝试将图表拆分为多个图表,然后将其重新放在本地或仅显示块。
答案 2 :(得分:0)
将图像发送到新窗口,
这将允许您右键单击并另存为,打印等...
window.open(chart.getImageURI(), '_blank');
以上创建了一个"弹出窗口"可能被封锁,
你也可以改变当前页面的位置......
location.href = chart.getImageURI();
请参阅以下小提琴示例...
https://jsfiddle.net/7qtuhwaw/
编辑
chrome的选项是创建下载链接,
请参阅以下工作代码段...
google.charts.load('current', {
callback: function () {
var data = new google.visualization.DataTable();
data.addColumn('date', 'Date');
data.addColumn('number', '2015');
data.addColumn('number', '2016');
data.addRows([
[new Date('01/01/2016'), 200, 210],
[new Date('02/01/2016'), 190, 220],
[new Date('03/01/2016'), 205, 200],
[new Date('04/01/2016'), 220, 230],
[new Date('05/01/2016'), 212, 210],
[new Date('06/01/2016'), 185, 193],
[new Date('07/01/2016'), 196, 207]
]);
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
google.visualization.events.addListener(chart, 'ready', function () {
downloadLink = document.createElement('a');
downloadLink.href = chart.getImageURI();
downloadLink.download = 'chart.png';
downloadLink.click();
});
chart.draw(data, {
hAxis: {
format: 'MMM'
},
height: 400
});
},
packages: ['corechart']
});

<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
<div id="image_div"></div>
&#13;