SVG in PNG konvertieren und CSS-Integrität beibehalten

8

Ich verwende derzeit canvg () und Canvas2Image, um meine SVG in eine Zeichenfläche zu kopieren und dann die Zeichenfläche in PNG zu konvertieren. Ich möchte das Bildformat beibehalten und nicht PDF verwenden.

Wie kann ich die CSS-Integrität aufrechterhalten? Das Diagramm wird mit NVD3.js erstellt.

%Vor%

    
collenjones 05.12.2013, 07:33
quelle

3 Antworten

4

Stildefinitionen für in Stylesheets definierte SVG-Elemente werden nicht auf die generierte Leinwand angewendet. Dies kann durch Hinzufügen von Stildefinitionen zu den Svg-Elementen vor dem Aufruf von canvg gepatcht werden.

Inspiriert auf diesem Artikel habe ich Folgendes erstellt:

%Vor%     
R. Oosterholt 11.08.2015 18:36
quelle
2

Der Schlüssel hier ist, dass alle Stilregeln Teil des SVG sein müssen, nicht in externen Stildateien. Sie müssten also das gesamte CSS für NVD3 durchgehen und alle diese Attribute im Code festlegen. Alles, was über ein externes Stylesheet gesetzt wird, wird ignoriert.

    
Lars Kotthoff 05.12.2013 09:09
quelle
0

nur um @Lars Kotthoffs Antwort konkreter zu machen. " Beispiel, wie man ein PNG direkt von einem Svg exportiert " hat ein funktionierendes Beispiel. Das Code-Snippet / Gist versucht, zuerst alle css auf die svg inline anzuwenden und dann das Bild auf die Leinwand zu zeichnen und die Daten als PNG zu exportieren. (intern wurde svg-crowbar -Code angenommen). und ich wende die Technik in meinem Projekt an und es funktioniert reibungslos - eine Download-Schaltfläche, die das SVG-Bild herunterladen kann, das mit nvd3 gerendert wurde.

    
Dyno Fu 31.12.2016 05:16
quelle

Tags und Links