1

Webapp では Highcharts JSを使用しています。また、お客様がワンクリックで図や円グラフをダウンロードできるように、「ハイチャート エクスポート」も使用しています。

ここで、ハイチャートで表示されるすべてのダイアグラムをワンクリックでダウンロードできる機能を追加したいと思います。お客様が各チャートを個別にダウンロードする必要がないようにします。ハイチャートにはすでにそのような機能がありますか?

4

2 に答える 2

2

これを行う簡単な方法が見つかりません。

highchartsエクスポート モジュールは、POST要求を highcharts サーバーに送信して (グラフの SVG を渡します)、PDF または PNG を生成します。

連続して呼び出してみchart.exportChart()ましたが、最初の呼び出しでドキュメントのフォーカスが変更され、後続の呼び出しが起動されないため、これは機能しません。したがって、次の 2 つのオプションがあると思います。

  1. サーバー側で行います。JavaScriptchart.getSVG()ですべてのチャートの SVG () を返し、POST リクエストを生成するサーバー側スクリプトを作成し、結果のファイルを圧縮してクライアント側に返します。

  2. クライアント側にとどまります。チャート オブジェクトの SVG を取得し、それを操作して、複数のチャートを 1 つの SVG ドキュメントに埋め込みます。次に、highcharts サーバーにリクエストを送信します。このようにして、複数のチャートを含む 1 つの PDF ドキュメントを取得できます。

于 2012-12-16T15:51:24.493 に答える
0

これは私がそれを行う方法です:

  1. PhantomJS の hekp を使用して独自のエクスポート サーバーをセットアップします。(これは、このhttp://www.highcharts.com/articles/2-news/52-serverside-generated-chartsのショートカットです)
  2. 各チャート データを AJAX 経由で PhantomJS エクスポート サービスに送信します。
  3. エクスポートされた PNG をサーバー サイド スクリプト (php または py) を使用して 1 つの画像に結合するか、PhantomJS を使用してすべてを 1 つのページにレンダリングし、ラスタライズして 1 つとしてエクスポートし、そのパスを AJAX 経由でフロント エンドに送り返します。
  4. 画像を受け取り、ユーザーにダウンロードさせます :) .

最初の 2 つの手順については、Packt 用に作成した最近のチュートリアル ビデオ ( https://www.packtpub.com/web-development/learning-highcharts-video ) で詳細に説明されています。

お役に立てば幸いです。

于 2015-12-06T21:29:53.780 に答える