Как использовать highcharts с princeXML? - PullRequest
6 голосов
/ 28 февраля 2012

Я оцениваю princexml, и это пока очень хорошо. Одна небольшая проблема, хотя. Есть ли способ сохранить график, сгенерированный высокими диаграммами в princexml, в браузере?

Я понимаю, что мне нужно создать график в виде изображения на холсте, но не знаю, как передать график в princexml. Есть идеи?

Ответы [ 3 ]

3 голосов
/ 09 октября 2014

Я работаю в DocRaptor (API HTML в PDF, использую Prince XML для рендеринга PDF), и мы только что опубликовали пост в блоге о добавлении Highcharts в PDF:

Добавление Highcharts в PDF-файлы

По сути, вам просто нужно использовать наш JavaScript-движок (который отличается от JavaScript-движка Prince и работает до того, как мы передадим этот процесс Prince) и отключить анимацию в коде, который отображает ваши графики.

2 голосов
/ 28 февраля 2012

Одна вещь, которую вы можете сделать, это просто передать SVG, сгенерированный HighCharts, принцу.

Одна из проблем, с которой вы столкнетесь в этом решении, заключается в том, что IE8 не будет генерировать SVG, но VML, который принц не можетвизуализации.Возможно, вы сможете передать свой javascript напрямую принцу, но мы еще не опробовали это решение.

Редактировать:

На самом деле я только что проверил кормление Принса с помощью javascript, который будет генерировать SVG... но не повезло, поэтому мы застряли с подачей предварительно отрендеренного SVG.Возможно, придется сделать это на стороне сервера, используя javascript runtime.

0 голосов
/ 06 марта 2015

JavaScript-движок PrinceXML не кажется достаточно мощным для создания диаграмм с такими компонентами, как Highcharts.

Итак, я сделал, что запустил мою страницу в PhantomJS , чтобы он запускал JSи создайте SVG-элементы в DOM, а затем передайте результат в PrinceXML.

Обязательно отключите анимацию, иначе вы напечатаете кадр 0 из этого:

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