2016-11-24 4 views
1

Ich konvertiere meine Svg zu pdf mit TCPDF PHP-Bibliothek. Meine Svg haben ForeignObject mit Körper, Div und Span für die Anzeige einiger Kommentare im Text. Wenn ich dieses SVG im Browser öffne, sieht es gut aus, aber wenn ich es mit TCPDF in PDF umwandle, bekomme ich einen leeren Platz, wo mein Text zusammen mit dem grauen Hintergrund erscheinen sollte.Foreignobject von SVG wird nicht konvertiert und erscheint in PDF von TCPDF

+0

Willkommen bei Stackoverflow. Bitte lies diese Links, um deine Frage zu verbessern: [Tour] (http://stackoverflow.com/tour) | [Wie zu fragen] (http://stackoverflow.com/help/how-to-ask) | [Minimales, vollständiges und verifizierbares Beispiel] (http://stackoverflow.com/help/mcve) – Tom

Antwort

1

Wenn Sie ein <foreignObject> in Ihrem SVG verwenden, dann würden Sie einen Konverter benötigen, der nicht nur SVG, sondern auch HTML rendert. Vielleicht bringt jemand einen SVG-Konverter auf den Markt, der HTML unterstützt, aber mir ist das nicht bekannt.

Der SVG-Standard stellt das Element <foreignObject> zur Verfügung, sodass Benutzer Nicht-SVG-Inhalt in ein SVG einbetten können. Der SVG-Standard erfordert kein SVG-Rendering, um bestimmte Inhaltstypen zu unterstützen, die möglicherweise im foreignObject platziert sind.

Die Tatsache, dass Browser HTML in einem ForeignObject unterstützen, ist offensichtlich nur eine Folge davon, dass sie HTML-Viewer sind.

Es gibt keine klare und offensichtliche Problemumgehung außer der Vermeidung der Verwendung von ForeignObject.

Wenn es Ihnen egal ist, dass der SVG-Inhalt als Vektoren bei der Konvertierung in eine PDF-Datei erhalten bleibt, können Sie mit phantomjs das SVG in eine Bitmap konvertieren. Dann wandle diese Bitmap in eine PDF um. Das ist keine sehr gute Lösung.

+0

Ich habe kein Problem in Brower, es funktioniert gut mit Browser., Aber wenn ich diese SVG in TCPDF dann FremdeObjekt-Elemente erscheinen nicht. Und ja, ich brauche SVG, um in Vektorform zu bleiben. Ich benutze $ pdf-> ImageSVG ($ file = 'Bilder/tux.svg', $ x = 30, $ y = 100, $ w = '', $ h = 100, $ link = '', $ align = '', $ palign = '', $ border = 0, $ fitonpage = false); zum Hinzufügen von Svg in PDF aus TCPDF –

+0

Viel Glück bei der Suche nach einem SVG zu PDF-Konverter, der HTML unterstützt. Möglicherweise müssen Sie ernsthaft darüber nachdenken, Ihre SVGs so zu ändern, dass sie '' nicht verwenden. –

+0

@PaulLeBeau schauen Sie sich bitte an, wie "draw.io" funktioniert. Sie verwenden definitiv Fremde Objekte in Svg für die Anzeige von Text. Und dann konvertieren Sie diese Svg zu PDF mit einigen serverseitigen Konverter. Welchen Konverter benutzen sie? – krispo