2012-02-27 11 views
6

私はprincexmlを評価しています。これまでのところとても良いです。しかし、1つのマイナーな問題。ハイチャートで生成されたグラフをブラウザのprincexmlに保存する方法はありますか?princeXMLでhighchartsを使用するには?

グラフをキャンバス上にイメージとして作成する必要があるが、グラフをprincexmlにフィードする方法がわからないことを理解しています。何か案は?

答えて

2

あなたができることの1つは、HighChartsによって生成されたSVGをプリンスにフィードすることです。

このソリューションでは、IE8ではSVGは生成されず、プリンスはレンダリングできないVMLが生成されます。プリンスに直接JavaScriptを送ることができるかもしれませんが、まだこのソリューションをテストしていません。

編集:

私は実際にちょうどSVGを生成するjavascriptの...しかし、運に王子を供給するテストし、私たちはそれプリレンダリングSVG給で立ち往生しています。 JavaScriptのランタイムを使用してサーバー側で行う必要があります。

3

私はDocRaptor(PDFレンダリングのための王子XMLを使用してPDF APIにHTML、)で動作し、我々だけでPDFファイルにHighchartsの追加についてのブログ記事を公開し:基本的に、あなただけに必要

Adding Highcharts to PDFs

私たちのJavaScriptエンジン(PrinceのJavaScriptエンジンとは異なり、プロセスをPrinceに渡す前に実行)を使用し、グラフをレンダリングするコード内のアニメーションを無効にします。

+0

私はあなたのJavaScriptエンジンを見つけることができますか?オープンソースですか? – Thijs

+2

これはphantomjsを使ってJavaScriptの操作を処理します。 –

0

PrinceXMLのJavaScriptエンジンは、ハイチャートなどのコンポーネントを持つチャートを作成するのには十分強力ではありません。

私が行ったことは、自分のページをPhantomJSにしてJSを実行し、DOMでSVG要素を作成し、その結果をPrinceXMLに送ることです。

は、そうでない場合は、あなたがそれのフレーム0を印刷しますアニメーションを無効にしてください:

Highcharts.setOptions({ 
 
       plotOptions: { 
 
        series: { 
 
         animation: false //Animations prevent proper PDF generation of charts! 
 
        } 
 
       } 
 
      });

関連する問題