kostenloses Linux-Kommandozeilen-Tool zum Konvertieren von SVG in PDF und / oder ein gängiges Bitmap-Format?


17

Gibt es ein kostenloses Linux-Kommandozeilen-Tool zum Konvertieren von SVG in PDF und / oder ein allgemein verwendetes Bitmap-Format (zum Beispiel PNG)?

linux  svg 

2
mogrify -format pdf -- *.svg
Yrogirg

Antworten:


25

Imagemagick ist großartig, wenn eine gerasterte (pixelige) Ausgabe das ist, was Sie wollen (oder zumindest akzeptabel ist), aber es ist eine schlechte Wahl, da es effektiv eine gerasterte Version von allem, was Sie konvertieren möchten, in das PDF einbettet. Der springende Punkt von svg / pdf ist, dass es vektorisiert werden kann, wodurch es kleiner wird und bei jeder Auflösung flüssig bleibt.

Daher würde ich auf jeden Fall empfehlen, entweder Inkscape oder CarioSVG zu verwenden . Letzteres verfügt genau zu diesem Zweck über mehrere Befehlszeilendienstprogramme ( svg2pdf, svg2psund svg2png). Das einzige Problem ist, dass es sich im Grunde genommen nur um ein Python-Ei handelt. Wenn Sie also keine Python-Umgebung eingerichtet haben und nicht über ausreichende Kenntnisse verfügen (oder sich nicht darum kümmern), eine einzurichten, ist diese Option ein Nein gehen. Ich habe es selbst versucht, hatte aber Probleme beim Einrichten der erforderlichen libcairo(nicht dass ich mich zu sehr bemüht hätte).

Inkscape ist fantastisch, aber das CLI ist etwas klobig, wenn Sie nur einen kurzen Befehl benötigen, um die ganze Arbeit für Sie zu erledigen. Ich habe ein paar kleine Skripte zusammengestellt, um das alles für mich zu erledigen:

svg2pdf

#!/bin/bash

for i in $@; do
  inkscape --without-gui --export-pdf="$(basename $i .svg).pdf" $i
done

svg2png

#!/bin/bash

for i in $@; do
  inkscape --without-gui --export-png="$(basename $i .svg).png" $i
done

Setzen Sie den ersten ~/bin/svg2pdfund den letzteren ein ~/bin/svg2png, führen Sie chmod +xbeide aus, um sie ausführbar zu machen, und boomen Sie! Sie haben eine schnelle und einfache Verknüpfung für diese häufig gewünschten Vorgänge, bei denen Sie sich weder Gedanken machen noch merken müssen, wie die CLI von Inkscape funktioniert. (Natürlich muss Inkscape installiert sein, bevor dies funktioniert.)


Ich habe nur einen schnellen Leistungstest mit Imagemagick und Inkscape mit der Generierung von zehn PDFs durchgeführt und Imagemagick ist 5,77-mal schneller. time for i in {1..10}; do time inkscape --without-gui -f "drawing.svg" --export-pdf="drawing$i.pdf"; done;echte 0m2.192s time for i in {1..10}; do convert drawing.svg drawing$i$i$i.pdf; done;echte 0m0.381s

6
Es ist zwar schneller, aber Sie verlieren die vektornatur der Grafik, sodass sie wahrscheinlich auch 10-mal größer ist (obwohl ich mich freuen würde, wenn Sie mich korrigieren, wenn ich falsch liege). Der Grund dafür ist, dass es länger dauert, weil es tatsächliche Vektormanipulationen ausführt, was viel komplexer ist als das Rasterisieren (was im Grunde dem Rendern entspricht).
metasoarous

7

Es gibt Image Magick und Inkscape verfügt auch über Befehlszeilen-Tools.


3
convertgewinnt bei weitem. Es ist sogar in der Lage, in und aus esoterischen Formaten zu konvertieren, von denen Sie nicht einmal wussten, dass es sie gibt, und mehr Effekte auf sie anzuwenden, als Sie jemals brauchen werden.
new123456

3
Nur für unbekannte Leser zu klären, convertist ein Befehlszeilen-Tool für ImageMagick.
Erika

2
und noch eine Klarstellung: Wenn Sie die Konvertierung verwenden, wechseln Sie vom Vektor zum Raster und verlieren die Möglichkeit, das Bild zu skalieren. In meinem Buch gewinnt inkscape. es kommt nur darauf an, was du brauchst.
Nsheff


0

Wie ich weiß, gibt es eine Möglichkeit, Inkscape über cmd zu bedienen. Ich habe bereits etwas Ähnliches für den Batch-Export von PNG-Thumbnails aus meiner riesigen SVG-Sammlung verwendet. Da Inkscape auch den PDF-Export über Kairo unterstützt, sollte auch der PDF-Export möglich sein. Ich würde auf einigen Inkscape-Forum fragen. :-)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.