2012-06-20 34 views

答えて

6

ここでは、直接印刷を行う別の解決方法を示します。これはchart.print()関数に基づいていますが、複数のチャートで機能します。答えをhttp://jsfiddle.net/jim31415/q5Rzu/150/

 //-------------------------------------------------------------------- 
     $("#print").click(function() { 
      printCharts([chart1, chart2, chart3]); 
     }); 


     //-------------------------------------------------------------------- 
     function printCharts(charts) { 

      var origDisplay = [], 
       origParent = [], 
       body = document.body, 
       childNodes = body.childNodes; 

      // hide all body content 
      Highcharts.each(childNodes, function (node, i) { 
       if (node.nodeType === 1) { 
        origDisplay[i] = node.style.display; 
        node.style.display = "none"; 
       } 
      }); 

      // put the charts back in 
      $.each(charts, function (i, chart) { 
       origParent[i] = chart.container.parentNode; 
       body.appendChild(chart.container); 
      }); 

      // print 
      window.print(); 

      // allow the browser to prepare before reverting 
      setTimeout(function() { 
       // put the charts back in 
       $.each(charts, function (i, chart) { 
        origParent[i].appendChild(chart.container); 
       }); 

       // restore all body content 
       Highcharts.each(childNodes, function (node, i) { 
        if (node.nodeType === 1) { 
         node.style.display = origDisplay[i]; 
        } 
       }); 
      }, 500); 
     } 
    }); 
+0

私はそれに目を通しますが、jsFiddleに見えるものから見えます。 –

+0

Highchartsがファイルを削除しました。これは最初のリンクの代わりにこれを使うことができます。http://jsfiddle.net/q5Rzu/147/ – fcortes

+0

私を助けてくれますか?私は一度に5つのチャートを印刷したい。しかし、私は最初のページの一番上に太りを与えたい。どうやってするか ? –

8

exportChartメソッドは、複数のグラフを送信できるようにパラメータを受け入れます。ただし、printメソッドはパラメータを受け入れません。ですから、印刷するためには、chart1.print()のように各グラフを個別に指定する必要があります。およびchart2.print();それぞれ別々に印刷します。 Highcharts印刷を使用せずにページ全体を印刷する

  1. は、2つの回避策があります。ここにはexampleがあります。

  2. 両方のグラフをpdfファイルにエクスポートしてからフォームを印刷することができます。ここに例を示しますexport multiple charts to one pdf

+0

ありがとう:

はここデモを参照してください。これはjFiddleで動作しますが、私のページでは、これはチャートだけでなくページ上の他のものも印刷します。私は印刷CSSを使って何かを働かせることができると思うが、チャートだけを印刷する方法はあるのだろうか? –

+0

私は自分の答えを更新しました。多分それはあなたのために働くでしょう。 – Linger

+0

これは、クライアント側から複数のチャートを印刷することができない場合に使用することを意図したものです。誰かが別の解決策を持っている場合に備えて、私は今質問を開いたままにしておきます。 –

関連する問題