Динамический PDF из HTML, который содержит Javascript - PullRequest
5 голосов
/ 27 мая 2011

В настоящее время я работаю над созданием PDF-файла из простой HTML-страницы, которая содержит несколько диаграмм, сгенерированных в Javascript с использованием Highcharts.

В настоящее время у нас установлен ABCPdf, который генерирует PDF, однако он не захватывает ни одну из диаграмм. После некоторого поиска в Google, я обнаружил, что добавление:

theDoc.htmlOptions.UseScript = True

Должно работать, но это не так. Буду признателен за любые идеи.

Спасибо

Dave

Ответы [ 3 ]

2 голосов
/ 27 мая 2011

В настоящее время мы делаем это в работе для веб-страниц с javascript, которые отображаются в pdf для создания отчетов (с графиками HighCharts)

Мы используем wkhtmltopdf с большим успехом.

0 голосов
/ 31 мая 2011

Примеры диаграмм, найденных на веб-сайте Highchart , по-видимому, используют SVG.

Когда я попытался отобразить их домашнюю страницу с помощью онлайн-демонстрации WebSupergoo для ABCpdf, которая используетIE, они также не смогли отрендерить.

ABCpdf поддерживает только подмножество SVG, основанное на спецификации SVG Tiny, согласно документации ...

Однако,В последней версии ABCpdf появилась поддержка конвертации веб-страниц с помощью движка Gecko.Поскольку этот движок поддерживает большинство профилей SVG Full, я бы предложил попробовать.Вы можете узнать, какие биты в настоящее время не реализованы здесь, на сайте Mozilla ...

Чтобы переключиться на движок Gecko, вам нужно добавить что-то вроде следующей строки кода:

myDoc.HtmlOptions.Engine = EngineType.Gecko;

Каждый механизм рендеринга также имеет свой набор HtmlOptions.Вы можете узнать больше о GeckoSubset здесь ...

Если это не сработает, вам, возможно, придется посмотреть, какие другие форматы можно экспортировать в HighChart.Поддерживают ли они элемент холста HTML5?

Еще одна мысль: возможно, ваши диаграммы исчезают, а ABCpdf захватывает только первый кадр?

0 голосов
/ 31 мая 2011

Некоторые идеи:

  1. Поскольку ABCPDF использует движок IE: поддерживает ли версия IE вашего сервера Highcharts? Обновите, если нет.
  2. Вы можете проверить, должны ли Highcharts генерировать изображение.
...