Мое решение автоматически создает эквивалентное изображение SVG для каждого графика на моей странице / панели инструментов (в его начальном состоянии), при этом пользователю не требуется экспортировать их по отдельности.Это позволяет правильно печатать все графики и диаграммы Highcharts на странице без вмешательства пользователя.
Причина, по которой страницы с диаграммами Highcharts печатаются неправильно, заключается в том, что диаграммы создаются с использованием SVG и текущейВерсии распространенных браузеров не поддерживают печать SVG (написано в январе 2012 г.).Поэтому мое решение не будет иметь значения, когда они это сделают.
Мое решение обходит текущее ограничение браузера:
Во-первых, я исправил файл Highcharts exporting.js
, чтобы автоматически запускать процедуру, которая обычно запускается, когда пользователь вручную выбирает экспортобраз.
Далее важно отметить, что когда пользователь вручную выбирает экспорт изображения, его запрос отправляется как запрос заголовка всей страницы.
Поэтому мое изменение функции экспорта неНЕ ПОСТАВЛЯЙТЕ данные старших диаграмм напрямую, но сначала ПОСТАВЛЯЕТ SVG и другие необходимые данные, которые нужны Highcharts для DIV на моей странице / панели инструментов.
Каждый DIV, который получает запрос, включает файл php, подпрограмма которого json_encodes
POST-данные, которые он получает из процедуры экспорта, а затем отправляет их на сервер экспорта Highcharts в качестве собственного заголовка.
Таким образом, поскольку POST запускается из этого DIV, результат отправляется обратно непосредственно в этот DIV в качестве заголовка сценария PHP в этом DIV.
После того, как он был отправлен обратно в тот DIV, я сохранил изображение, сделал печать DIV только через CSS, и единственным выводом HTML этого DIV был тег img с путем к файлу изображения.
Я запустил все div-ы, которые будут заполнены их изображениями, используя $(document).ready
.
Одно замечание для любого, кто пытался это сделать, это то, что конфигурация моего dev и live server отличалась, то есть мне пришлось stripslashes
JSON на одном из них перед отправкой в Highcharts.
Следующие посты укажут всем, кто пытается сделать это в правильном направлении.
Сохранение изображения Google Chart в файл с помощьюPHP
Публикация в DIV:
Публикация формы в JQuery и заполнение DIV - не работает в IE