2017-09-18 10 views
1

私は現在、Googleの縦棒グラフをpngに変換してから、chart_div.innerHTMLを使用してURLを取得してブラウザ(Firefox)に貼り付けます。getImageURI()はブラウザで開かない大きなURLを返します

私のエラーは:413です。これは誤りです。あなたのクライアントは大きすぎるリクエストを出しました

URLのサイズを減らす方法はありますか?またはそれを取り巻く可能な解決策はありますか?私の目標は、4つのチャートすべてをpngに変換して、それぞれ1または少なくとも1を印刷できるようにすることです。

答えて

0

新しいウィンドウに画像を送信、
が、これは右クリックにあなたをできるようにしてなど、印刷、として保存されます...

window.open(chart.getImageURI(), '_blank'); 

上記は、「ポップアップ」を作成していてもよく...

location.href = chart.getImageURI(); 

は、例えば、以下のフィドルを参照してください...
あなたはまた、現在のページの場所を変更することができ、ブロックされた

​​

EDITクロムのためのオプションは、ダウンロードリンクを作成することです


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>

+0

本当に助けになりました、あなたが述べたように、私はグラフ上に選択ハンドラを追加しようとしています。名前を付けて保存するようなPNG形式で直接ダウンロードしてください、ありがとうございます! – Lalati

+0

私はwindow.openをselectハンドラ関数に置くことができます。ユーザは手動で保存します。多くのアイデアを開くことができます。 – Lalati

+0

これはFirefoxでしか動作しませんが、Chromeはサポートされていません。 ? – Lalati

0

Googleのチャートの問題ページに表示されるgoogle developpersのサンプルソリューションです。

リンク:

チュートリアル:https://developers.google.com/chart/interactive/docs/printing

+0

はいそれは正確な例だ...作業スニペット以下を参照してください。私は使用しました。 – Lalati

+0

ブラウザに貼り付けると(クロム)、それはうまくいったのですか?そして、なぜブラウザでポストしていますか? – M0ns1f

+0

試したクロムですが、うまくいきません。データ:画像ですが、document.writeで出力しようとしましたが、ブラウザ上でpng atmとしてダウンロードしています。 – Lalati

0

あなたは、Googleのサーバーへのアクセス権を持っていない限り、あなたはチャンクでチャートを取得する必要があります。 HTTP 413はサーバーが大きいことを意味するので、サーバーdeclined your requestを意味します。チャートを複数のチャートに分割し、ローカルに戻したり、チャンクを表示したりしてください。

+0

確かに、document.writeで出力しようとしましたが正常に動作しました、ダウンロードのみが現在pngまたはpdf(おそらく研究後にtcpdfを使用)として残されています – Lalati

関連する問題