Javascript - konvertieren von HTML-div-mit SVG zu image
Ich nutze Highcharts und ein Diagramm zeichnen.
Möchte ich hinzufügen, dass "export to PNG" - option, die beide enthält Highcharts-Graphen und äußeren div. Bei der Verwendung von Highcharts-export, ich bin nicht in der Lage zur Beurteilung der äußeren div mit dem Diagramm.
Sah ich einige Beispiele hier mit html2canvas. Als ich versuchte, es zu verwenden, die Highcharts' SVG-element wansn nicht in die Ausgabe aufgenommen Bild.
Kennt jemand eine Lösung, besser als zu versuchen, zu verschmelzen SVG-Bild im äußeren HTML-div-Bild?
Update -
Mit der neuesten version von html2canvas fest, dass Thema, aber die Ausgabe ist etwas anders:
Original:
html2canvas Ausgabe:
Wie Sie sehen können einige Elemente gerendert werden, die zweimal in verschiedenen Orten.
Jemand weiß wie es zu lösen?
- Würde das funktionieren? jsfiddle.net/8ypxW/3
- Ich schrieb dieser eine andere Frage über svg nach bitmap (noch zu warten, für Sie zu öffnen), vielleicht könnten Sie es verwenden, bevor Sie html2canvas, es denke deckt es mehr Sonderfälle als html2canvas svgToPng Methode
- Das Ergebnis ist das gleiche - keine SVG-Objekten.
- In deinem Beispiel gibt es nicht div außerhalb SVG-element.
- Nein, hier ist der link für die Frage, die mir beim schreiben dieses stackoverflow.com/questions/33506122/export-svg-as-bitmap ich vermute, dass es sowas gibt oder einen anderen edge-Fall, die macht Ihre svg unmöglich zu transformieren als bitmap. Aber es doesn ' T decken den html-Code bitmap an alle. Wenn es nicht funktioniert, und selbst wenn es funktioniert, wäre ich sehr daran interessiert, dass die ausgegeben wird svg-code, den Sie haben.
- Ich habe die aktualisierte html2canvas version (alpha1) und jetzt ist es fast funktioniert, aber das Bild ist nicht genau wie die html.
- proof-of-concept : jsfiddle.net/eqjmu644/1
- Thanx @Kaiido. Ich denke das Thema ist nun einige css-Stile, die werden noch nicht unterstützt.
- deshalb brauchen wir Ihre markup. Aber ich muss zugeben, dass ich vergaß externe CSS, also danke, ich werde in der Lage sein, um Sie zu verbessern mehr.
- Für die Konvertierung von svg-Bildern, kann ich empfehlen
canvg
. - canvg schlägt mit einigen speziellen features wie Filter jsfiddle.net/L3hondLn/248 sogar taints die Leinwand, während Sie nicht benötigt werden... Und es stürzt ab mit "im Dokument" stylesheets jsfiddle.net/L3hondLn/250
- canvg kann nur konvertieren Sie svg-element. Es kann nicht konvertieren, div, svg.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie sind den Umgang mit ein paar Grenzfälle von svg nach bitmap-Konvertierung.
Ich bin nicht sicher, welche Methode html2canvas verwendet, aber es ist sicherlich fehlt hier etwas.
Ich schrieb eine Funktion, die Griffe einige Thesen Grenzfälle, die Sie verwenden, bevor Sie html2canvas, da es in der Lage ist zu zeichnen von bitmaps, ohne jedes problem.
JS:
CSS:
HTML:
Hinweis :
Von dieser Frage, begann ich zu schreiben, eine vollständige exportInlineSVG Funktion, die Sie finden können hier.
SecurityError: The operation is insecure.
beivar rules = styleS[i].cssRules,
Script stopped working in Firefoxtry catch
block. Bitte verwenden Sie das aktualisierte script findest du hier : github.com/Kaiido/SVG2Bitmap/blob/master/SVG2Bitmap.js solche Fehler sind schon behoben, und wenn Sie andere lieben, bitte füllen Sie ein Problem.SYNTAX_ERR: DOM Exception 12: An invalid or illegal string was specified.
Fehler in safari in Zeileif ((svg.matches && svg.matches(selector)) || svg.querySelector(selector)) {
. Zeilennummer294
in der Quelle ist.