Lösung für das Problem, dass HTML2-Canvas-SVG nicht erkannt wird

Lösung für das Problem, dass HTML2-Canvas-SVG nicht erkannt wird

Es gibt eine neue Funktion, die das Erfassen einer Webseite als Bild erfordert. Daher habe ich das beliebte html2canvas verwendet. Ich dachte, ich könnte es problemlos machen, aber später stellte ich fest, dass die Verbindungslinien des Flussdiagramms auf der Webseite nicht im Screenshot enthalten waren. Ich habe also viel auf Baidu und Bing gesucht, aber es scheint, dass es keinen vollständigen Code gibt. Jetzt habe ich es selbst gelöst und teile den Code.

Zuerst müssen Sie canvg.js herunterladen, GitHub-Adresse: https://github.com/canvg/canvg

Funktion showQRCode() {
                scrollenZu(0, 0);
               
                wenn (Typ von html2canvas !== 'undefiniert') {
                    //Das Folgende ist die Verarbeitung von svg var nodesToRecover = [];
                    var nodesToRemove = [];
                    var svgElem = $("#divReport").find('svg'); //divReport ist die ID des Doms, das als Bild erfasst werden muss
                    svgElem.each(Funktion (Index, Knoten) {
                        var übergeordneter Knoten = Knoten.übergeordneter Knoten;
                        var svg = node.outerHTML.trim();

                        var Leinwand = Dokument.createElement('Leinwand');
                        canvg(Leinwand, SVG); 
                        wenn (Knoten.Stil.Position) {
                            Leinwand.Stil.Position += Knoten.Stil.Position;
                            Leinwand.Stil.links += Knoten.Stil.links;
                            canvas.style.top += node.style.top;
                        }

                        nodesToRecover.push({
                            übergeordneter Knoten: übergeordneter Knoten,
                            Kind: Knoten
                        });
                        übergeordneter Knoten.entfernenUntergeordnetesElement(Knoten);

                        nodesToRemove.push({
                            übergeordneter Knoten: übergeordneter Knoten,
                            Kind: Leinwand
                        });

                        parentNode.appendChild(Leinwand);
                    });
                    html2canvas(document.querySelector("#divReport"), {
                        onrendered: Funktion (Leinwand) {
                            var base64Str = canvas.toDataURL(); //Base64-Code, kann in Bild konvertiert werden//...

                            $('<img>',{src:base64Str}).appendTo($('body'));//Direkt auf der Originalwebseite anzeigen} }); } }

Dies ist das Ende dieses Artikels über die Lösung für das Problem, dass HTML2+Canvas SVG nicht erkannt wird. Weitere verwandte Inhalte zum Thema „HTML2 Canvas SVG wird nicht erkannt“ finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

<<:  JavaScript zur einfachen Verknüpfung von Provinzen und Gemeinden

>>:  Schritte zur Installation von MySQL mit Docker unter Linux

Artikel empfehlen

Zusammenfassung der Unterschiede zwischen HTML, SHHTML und XHTML

Zum Beispiel: <u> Dies hat kein Endzeichen u...

Detaillierte Erklärung des Unterschieds zwischen Uniapp und Vue

Inhaltsverzeichnis 1. Einfaches Seitenbeispiel 2....

MySQL 5.6 Installationsschritte mit Bildern und Text

MySQL ist ein Open-Source-Verwaltungssystem für k...

So kompilieren und installieren Sie PHP und Nginx in einer Ubuntu-Umgebung

Dieser Artikel beschreibt, wie man PHP und Nginx ...

So konvertieren Sie zusätzlichen Text in HTML in Auslassungspunkte

Wenn Sie zusätzlichen Text in HTML als Auslassung...

Zehn beliebte Regeln für das Interface-Design

<br />Dies ist ein Artikel, den ich vor lang...