2012-02-27 13 views
6

Sto valutando princexml, ed è molto buono finora. Un piccolo problema però. C'è un modo per salvare un grafico generato da highcharts in princexml, sul browser?Come utilizzare highcharts con princeXML?

Capisco che ho bisogno di creare il grafico come un'immagine, su una tela, ma non sono sicuro di come alimentare il grafico a princexml. Qualche idea?

risposta

2

Una cosa che puoi fare è semplicemente alimentare l'SVG generato da HighCharts al principe.

Un problema che si avrà con questa soluzione è che IE8 non genererà SVG, ma VML, che il principe non può renderizzare. Potresti essere in grado di inviare il tuo javascript direttamente a Prince, ma dobbiamo ancora testare questa soluzione.

Edit:

in realtà ho appena testato alimentando il principe con il javascript che avrebbe generato l'SVG ... ma senza fortuna, così siamo bloccati con alimentandola SVG pre-renderizzati. Potrebbe farlo lato server usando un runtime javascript.

3

Io lavoro in DocRaptor (un HTML a PDF API, utilizzando il principe XML per il rendering PDF) e abbiamo appena pubblicato un post su come aggiungere Highcharts ai file PDF:

Adding Highcharts to PDFs

In sostanza, non vi resta che usa il nostro motore JavaScript (che è diverso dal motore JavaScript di Prince, e funziona prima che portiamo il processo a Prince) e disabiliti le animazioni nel codice che rende i tuoi grafici.

+0

Dove posso trovare il tuo motore JavaScript? È open source? – Thijs

+2

Usa phantomjs per gestire la manipolazione di javascript. –

0

Il motore JavaScript di PrinceXML non sembra abbastanza potente da eseguire diagrammi con componenti come Highcharts.

Quindi quello che ho fatto è eseguire la mia pagina in PhantomJS in modo da eseguire il JS e creare gli elementi SVG nel DOM e quindi inserire il risultato in PrinceXML.

Assicurarsi di disabilitare le animazioni altrimenti si stampano la struttura 0 di esso:

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