Ich benutze svg.js
sowie svgdom
auf einem Node / Express-Server, um zu versuchen, ein svg zu manipulieren und es später in ein PNG umzuwandeln, um daraus ein PDF zu erstellen.
Momentan habe ich es soweit gemacht
%Vor%Hier ist das Layout des SVG
%Vor% Ich sehe, dass es eine get()
-Methode gibt, die einen Index akzeptiert, aber der einzige Weg, wie ich an die ersten Textelemente gelangen kann, ist wie folgt ...
Ich bin mir nicht sicher, warum ich zuerst ein zweites Element und dann den tatsächlichen Index des Elements auswählen muss, das ich versuchen möchte
Außerdem bin ich mir nicht sicher, was ich mit einem set
machen soll, was die .select()
-Methode zurückgeben soll, kann ich das Textelement mit seinem Klassennamen irgendwie auswählen und dann seinen Index bekommen oder irgendwie den Text ändern?
Auch der Versuch, den Text dieses Elements an dieser Stelle zu ändern, funktioniert nicht
%Vor%Gibt mir diesen Fehler
%Vor% Ich versuche nur, den Text für die Textelemente .first-name
und .last-name
in dieser SVG-Datei zu ändern, und dann kann ich das an eine Funktion weiterleiten, die es in ein PNG konvertiert, das gehen wird in eine PDF-Seite generiert wird.
Kann mir jemand helfen, zu verstehen, wie ich das in dieser Bibliothek erreichen kann? Ich bin seit Stunden hier gewesen.
BEARBEITEN
Ich habe in cheerio
geladen und kann so auf das Element zugreifen, habe aber immer noch Probleme damit, den Text zu ändern. Ich kann anscheinend immer noch keinen Verweis auf ein SVG.js-Element bekommen
Wenn Sie SVG-Inhalte von einer Datei in Ihre Svg importieren, sieht das nach dem Import so aus:
%Vor% Mit svg.get(2)
bekommst du deine svg Instanz zurück. Mit dem folgenden get(8)
haben Sie Ihr Textelement.
Das SVG.Set
, das du von select()
zurückbekommst, ist mehr oder weniger ein schickes Array. svg.js hat eine ziemlich gute Dokumentation auf svgjs.com, wo dies gut erklärt wird. Sie können auf Elemente eines Sets mit get(index), first(), last()
zugreifen.
Was Sie jedoch erreichen wollen, ist ziemlich einfach. Holen Sie sich einfach die Elemente direkt nach ID:
%Vor%Tags und Links javascript svg node.js svg.js