Я хочу использовать html2canvas, обсуждаемый в http://html2canvas.hertzen.com/documentation.html, чтобы преобразовать содержимое html в изображение. Однако я не получаю изображение HighCharts правильно. В IE10 он отображает пустое изображение, а на Chrome он отображает его часть. Можно ли использовать html2canvas для этой цели.Использование html2Canvas с HighCharts
ответ
Highcharts использует svg для рисования диаграмм. Вам нужно будет использовать библиотеку canvg для рисования этого svg во временном холсте, а затем удалить этот холст, как только вы сделаете скриншот, используя html2canvas.
Вот ссылка на canvg: https://code.google.com/p/canvg/downloads/list
Попробуйте это:
//find all svg elements in $container
//$container is the jQuery object of the div that you need to convert to image. This div may contain highcharts along with other child divs, etc
var svgElements= $container.find('svg');
//replace all svgs with a temp canvas
svgElements.each(function() {
var canvas, xml;
canvas = document.createElement("canvas");
canvas.className = "screenShotTempCanvas";
//convert SVG into a XML string
xml = (new XMLSerializer()).serializeToString(this);
// Removing the name space as IE throws an error
xml = xml.replace(/xmlns=\"http:\/\/www\.w3\.org\/2000\/svg\"/, '');
//draw the SVG onto a canvas
canvg(canvas, xml);
$(canvas).insertAfter(this);
//hide the SVG element
this.className = "tempHide";
$(this).hide();
});
//...
//HERE GOES YOUR CODE FOR HTML2CANVAS SCREENSHOT
//...
//After your image is generated revert the temporary changes
$container.find('.screenShotTempCanvas').remove();
$container.find('.tempHide').show().removeClass('tempHide');
Это не совсем сработало со мной, оно возвращает пустой холст –
@NaguibIhab Не уверен, что там происходит. Вы можете проверить, добавлен ли контейнер $ в DOM перед тем, как сделать снимок экрана? Может быть, проблема. – shinobi
- 1. Картинка с highcharts в формате PDF, сделанная html2canvas, размыта?
- 2. Использование jsPDF и html2canvas с es6
- 3. Использование часов с HighCharts
- 4. Использование Highcharts
- 5. Использование HighCharts с выражением Lambda
- 6. Использование Websocket JSON с HighCharts
- 7. Использование HighCharts с vb asp.net
- 8. Использование Bootstrap Datepicker с Highcharts
- 9. Использование HighCharts с базовой сетью
- 10. Арабский Кодирование с html2canvas
- 11. Странная проблема с html2canvas
- 12. Захват изображения с html2canvas
- 13. Экспорт dhtmlxChart с html2Canvas
- 14. Looping html2canvas
- 15. html2canvas Учебник?
- 16. html2canvas основы
- 17. html2canvas offscreen
- 18. Использование jqcloud и highcharts
- 19. Использование html2canvas с jsPDF для сохранения PDF-файла страницы
- 20. BorderRadius Использование HighCharts HeatMap
- 21. Highcharts надлежащее использование datetime?
- 22. Formatter Использование Highcharts
- 23. Атрибут SVG Text удваивается - HTML2CANVAS
- 24. html2canvas + проблемы с файловым сервером
- 25. как захватить div с html2canvas?
- 26. Html2Canvas проблемы с тайским языком
- 27. Распечатать страницу с помощью html2canvas
- 28. Скриншот Textarea с использованием Html2Canvas
- 29. Комплект Качество Png с html2canvas
- 30. Основы захвата с использованием html2canvas
Highcharts использует SVG рисовать диаграммы. Вам понадобится использовать библиотеку canvg для рисования этого svg во временном холсте, а затем удалить этот холст, как только вы сделаете скриншот, используя html2canvas. – shinobi