Я генерирую текстовый отчет, используя php.
Мне нужно включить изображение временной шкалы, сделанное с помощью библиотеки vis.js, сделав снимок экрана с этого php-скрипта.
Я пытался использовать PhantomJS с php-phantomjs. Я могу отобразить страницу за исключением того, что раздел div, содержащий временную шкалу, отсутствует (у меня есть другие элементы). Используя эту библиотеку, я могу создавать скриншоты для других библиотек, таких как D3js и Chart.js. У меня проблема с vis.js …
Я также попробовал html2canvas. Но из того, что я видел и делал, единственный способ сделать скриншот — это открыть страницу в браузере, а это мне не нужно.
Что нужно сделать, чтобы добиться того, чего я хочу?
По какой-то причине PhantomJS выдает ошибку при загрузке временной шкалы. Я создал проблему, чтобы выяснить причину этой проблемы:
https://github.com/almende/vis/issues/1170
РЕДАКТИРОВАТЬ: нашел причину.
PhantomJS использует старый движок рендеринга, который не поддерживает функцию ES5 bind
, Чтобы решить эту проблему, сначала загрузите ES5-shim на свою веб-страницу:
<!-- load ES5 shim needed to run on old browsers IE8 and PhantomJS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.1.10/es5-shim.min.js"></script>
Других решений пока нет …