Ich möchte bei http://html2canvas.hertzen.com/documentation.html diskutiert html2canvas verwenden, um die HTML-Inhalte Bild zu konvertieren. Allerdings bekomme ich kein richtiges Bild von HighCharts. Auf IE10 wird ein leeres Bild gerendert und in Chrome wird ein Teil davon gerendert. Ist es möglich, html2canvas für diesen Zweck zu verwenden?Mit html2Canvas mit HighCharts
Antwort
Highcharts verwendet svg Diagramme zu zeichnen. Sie müssen die canvg library verwenden, um diese svg in eine temporäre Arbeitsfläche zu zeichnen, und diese Arbeitsfläche dann entfernen, wenn Sie den Screenshot mit html2canvas erstellt haben. Hier
ist der Link für canvg: https://code.google.com/p/canvg/downloads/list
Try this:
//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');
, die mit mir nicht ganz funktioniert hat, es Rückkehr eine leere Leinwand –
@NaguibIhab Nicht sicher, was falsch dorthin zu gehen. Können Sie überprüfen, ob der $ Container zum DOM hinzugefügt wurde, bevor Sie den Screenshot machen? Vielleicht ist das das Problem. – shinobi
- 1. Textarea screenshot mit Html2Canvas
- 2. html2canvas Tutorial?
- 3. Targeting eines spezifischen div mit html2canvas
- 4. Kann nicht erfassen google Karte mit html2canvas
- 5. html2canvas offscreen
- 6. Wie mehrere PDF-Seiten mit jsPDF mit HTML2Canvas haben
- 7. Highcharts: Kreis mit Bildhintergrund
- 8. Textüberlauf Problem mit Highcharts
- 9. Größe ändern mit Highcharts
- 10. Highcharts Bug mit Etiketten
- 11. Live-Daten mit highcharts
- 12. Highcharts: Diagramm mit JSON
- 13. TypeScript und Html2Canvas?
- 14. html2canvas + FileSaver Browser Probleme
- 15. Umgang mit Unix-Zeitstempel mit highcharts
- 16. Mit highcharts mit Sencha ext js 6
- 17. Html2canvas: facebook plugin Kommentare
- 18. html2canvas erfasst kein Bild
- 19. Rails Project Chartkick mit Highcharts
- 20. Highcharts funktioniert nicht mit wicked_pdf
- 21. Bug mit highcharts tortenGrund Prozent
- 22. Highcharts mit Direktiven in AngularJS
- 23. Verwenden Stunden Wert mit HighCharts
- 24. Problem mit npm und Highcharts
- 25. Animierte Strichbreite mit Highcharts-Renderer
- 26. Umgang mit Kuchendiagramm-Überlappung [Highcharts]
- 27. Html2canvas Bild erfassen Problem mit UTF-8 Zeichen
- 28. html2canvas nicht das Herunterladen des Bildes mit firefox
- 29. Highcharts - mit Datum/Uhrzeit Achsenbeschriftungen überlappen
- 30. Laden von Daten in Highcharts mit Ajax
Highcharts svg verwendet Diagramme zu zeichnen. Sie müssen canvg Bibliothek für die Erstellung dieser SVG-Datei in eine temporäre Leinwand verwenden und dann die Leinwand entfernen, sobald Sie den Screenshot mit html2canvas nehmen. – shinobi