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)?
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/bashfor i in $@;do
inkscape --without-gui --export-pdf="$(basename $i .svg).pdf" $i
done
svg2png
#!/bin/bashfor 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).
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.
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. :-)
mogrify -format pdf -- *.svg
Antworten:
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
,svg2ps
undsvg2png
). 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 erforderlichenlibcairo
(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
svg2png
Setzen Sie den ersten
~/bin/svg2pdf
und den letzteren ein~/bin/svg2png
, führen Siechmod +x
beide 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.)quelle
time for i in {1..10}; do time inkscape --without-gui -f "drawing.svg" --export-pdf="drawing$i.pdf"; done;
echte 0m2.192stime for i in {1..10}; do convert drawing.svg drawing$i$i$i.pdf; done;
echte 0m0.381sEs gibt Image Magick und Inkscape verfügt auch über Befehlszeilen-Tools.
quelle
convert
gewinnt 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.convert
ist ein Befehlszeilen-Tool für ImageMagick.Inkscape
In PDF:
zu PNG:
Gefunden unter
man inkscape
und Verwendung von Inkscape im Befehlszeilenmodusquelle
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. :-)
quelle