2012-02-27 9 views
6

Oceniam princexml i do tej pory jest bardzo dobrze. Jednak jeden drobny problem. Czy istnieje sposób na zapisanie w przeglądarce wykresu wygenerowanego przez highcharts do princexml?Jak korzystać z highcharts z princeXML?

Rozumiem, że muszę stworzyć wykres jako obraz na płótnie, ale nie wiem, jak karmić wykres do princexml. Jakieś pomysły?

Odpowiedz

2

Jedną z rzeczy, którą możesz zrobić, to nakarm SVG generowanego przez HighCharts księciu.

Jednym z problemów będziesz miał z tego rozwiązania jest to, że IE8 nie wygeneruje SVG, ale VML, który książę nie może render. Możesz być w stanie przekazać swój javascript bezpośrednio do Prince'a, ale musimy jeszcze przetestować to rozwiązanie.

Edit:

I właściwie tylko przetestowane karmienia Księcia z javascript że wygenerowania SVG ... ale bez powodzenia, więc utknęliśmy z karmienia to pre-renderowane SVG. Może to zrobić po stronie serwera przy użyciu środowiska uruchomieniowego javascript.

3

pracuję w DocRaptor (HTML do PDF API, za pomocą księcia XML do renderowania PDF) i właśnie opublikował wpis na blogu na temat dodawania Highcharts do plików PDF:

Adding Highcharts to PDFs

Zasadniczo wystarczy użyj naszego silnika JavaScript (który jest odrębny od silnika JavaScript Prince'a i działa przed przekazaniem procesu do Prince) i wyłącz animacje w kodzie renderującym twoje wykresy.

+0

Gdzie mogę znaleźć silnik JavaScript? Czy to jest open source? – Thijs

+2

Używa phantomjs do obsługi manipulacji javascript. –

0

Silnik JavaScript PrinceXML nie wydaje się wystarczająco silny, aby tworzyć wykresy z elementami takimi jak Highcharts.

Więc to, co zrobiłem, to uruchomić moją stronę do PhantomJS, aby uruchomić JS i utworzyć elementy SVG w DOM, a następnie podać wynik do PrinceXML.

Pamiętaj, aby wyłączyć animacje inaczej będziesz drukować ramkę 0 z nim:

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