05.082015

Inkscape: SVGs in verschiedene Formate konvertieren

Mit SVGs in Webseiten kann man geniale Dinge machen. Man kann sie dynamisch erzeugen und zur Laufzeit manipulieren. Doch wenn man auf einer Seite sehr viele SVGs hat dauert das Rendern unter Umständen sehr lange. Wenn wir jetzt dynamisch erzeugte SVGs nur ausgeben lassen wollen, bietet es sich an, diese in ein statisches Bildformat zu konvertieren. Dies kann man ganz einfach machen, zum Beispiel mit Inkscape. Inkscape ist freie Software und stellt auch ein Kommandozeilen Tool zur Verfügung. Das ist optimal um es zum Beispiel mit PHP anzusprechen. Wie das geht, zeige ich euch in diesem Blogpost.

Inkscape ist optimal wenn man ein SVG (oder andere Vektor Formate) konvertieren will. Es unterstützt die folgenden Formate:

  • SVG (Scalable Vector Graphics)
  • PDF (Portable Document Format)
  • EPS (Encapsulated PostScript)
  • PS (PostScript)
  • LATEX
  • PNG (Portable Network Graphics) (Nur Ausgangsformat)

Das Commandline Tool von Inkscape ist schnell installiert. Unter Ubuntu einfach mit:

sudo apt-get install inkscape

Ist es installiert kann man ein SVG in ein PDF zum Beispiel so konvertieren:

 inkscape --file="input-file.svg" --export-pdf="output-file.pdf" --export-area-drawing

Die Option --export-area-drawing sorgt einfach dafür, dass nicht eine ganze Seite exportiert wird sondern nur die Fläche auf der etwas gezeichnet ist. Es gibt noch viele weitere nützliche Optionen, wie zum Beispiel die Ausgabe der Position und Abmessungen. Alle Optionen bekommt man mit:

inkscape --help

Wenn man inkscape jetzt aus einem PHP Skript ansprechen möchte, benutzt man am Besten exec:

<?php
exec("inkscape --file="input-file.svg" --export-pdf="output-file.pdf" --export-area-drawing");

Inkscape erweist sich im praktischen Alltag als perfektes Tool für Konvertierungen in die genannten Formate.