Chcę użyć html2canvas omawianego na http://html2canvas.hertzen.com/documentation.html, aby przekonwertować zawartość html na obraz. Jednak nie uzyskuję prawidłowego obrazu HighCharts. W IE10 renderuje czysty obraz, a w Chrome renderuje jego część. Czy można w tym celu użyć html2canvas?Używanie html2Canvas z HighCharts
Odpowiedz
Highcharts używa svg do rysowania wykresów. Będziesz musiał użyć biblioteki canvg do rysowania tego pliku SVG do tymczasowego płótna, a następnie usunąć to płótno po zrobieniu zrzutu ekranu za pomocą html2canvas.
Oto link do canvg: https://code.google.com/p/canvg/downloads/list
Spróbuj tego:
//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');
To nie działa ze mną, wraca puste płótno –
@NaguibIhab Nie jestem pewien, co tam jest nie tak. Czy możesz sprawdzić, czy kontener $ zostanie dodany do DOM, zanim zrobisz zrzut ekranu? Może to być problem. – shinobi
- 1. Problemy Html2Canvas z językiem tajlandzkim
- 2. TypeScript i Html2Canvas?
- 3. nie może uchwycić Mapa google z html2canvas
- 4. highcharts tooltip z-index
- 5. Handling unix timestamp z highcharts
- 6. Zmień rozmiar wysokości z Highcharts
- 7. Schematy highcharts z 4 ćwiartkami
- 8. Czy html2canvas renderować svg na stronie?
- 9. Jak uzyskać wiele stron pdf przy użyciu jsPDF z HTML2Canvas
- 10. HTML2Canvas konwertowanie przepełnionej treści do obrazu
- 11. Highcharts Gauge
- 12. Jak korzystać z highcharts z princeXML?
- 13. Highcharts - z etykietami osi datetime pokrywają się
- 14. Arkusze danych Highcharts z nakładającymi się kolumnami
- 15. Highcharts usuwają etykiety z wartością zerową
- 16. Jak uzyskać zasięgSelektor do pracy z HighCharts
- 17. Bug z highcharts pie-basic procent
- 18. Wyłącz opcję Wykres Drukuj z HighCharts
- 19. Testowanie Highcharts (biblioteka wykresów JS) z ogórkiem
- 20. Highcharts z danymi JSON i wieloma seriami
- 21. Czy możemy używać Highcharts z React-Native?
- 22. Highcharts wykres eksport z pliku svg
- 23. Highcharts seria tablica danych
- 24. Etykiety yaxis Highcharts Format
- 25. Highcharts Performance Enhancement Method?
- 26. Lazy Highcharts drilldown
- 27. Dynamicznie addSeries highcharts
- 28. Przełęcz highcharts jest ukryta
- 29. Highcharts: jak ustawić dataGrouping
- 30. Zmiana Highcharts rozmiar czcionki
Highcharts używa SVG do rysowania wykresów. Będziesz potrzebował użyć biblioteki canvg do przeciągnięcia tego pliku SVG do tymczasowego płótna, a następnie usunięcia tego płótna po zrobieniu zrzutu ekranu za pomocą html2canvas. – shinobi