strumento gratuito da riga di comando di Linux per convertire SVG in PDF e / o in qualche formato bitmap comunemente usato?


17

Esiste uno strumento da riga di comando linux gratuito per convertire SVG in PDF e / o un formato bitmap comunemente usato (ad esempio PNG)?

linux  svg 

2
mogrify -format pdf -- *.svg
Yrogirg,

Risposte:


25

Imagemagick è fantastico quando l'output rasterizzato (pixelato) è quello che vuoi (o almeno è accettabile), ma è una scelta sbagliata altrimenti, poiché incorpora efficacemente nel pdf una versione rasterizzata di tutto ciò che stai cercando di convertire. L'intero punto di svg / pdf è che può essere vettorializzato, quindi di dimensioni più ridotte, rimanendo liscio a qualsiasi risoluzione.

Quindi, consiglierei sicuramente di usare Inkscape o CarioSVG . Quest'ultimo ha diverse utilità da riga di comando proprio per questo scopo ( svg2pdf, svg2pse svg2png). L'unico inconveniente è che è fondamentalmente solo un uovo di pitone, quindi se non hai un ambiente di pitone impostato e non sei abbastanza esperto (o non ti interessa abbastanza) da crearne uno, allora quell'opzione è un no partire. Ho provato me stesso, ma ho avuto problemi con l'impostazione del necessario libcairo(non che ho provato troppo ).

Inkscape è fantastico, ma il cli è un po 'goffo se vuoi solo un piccolo comando rapido per fare tutto il lavoro per te. Ho messo insieme un paio di piccoli script per occuparmi di tutto questo per me:

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

Inserisci il primo ~/bin/svg2pdfe il secondo ~/bin/svg2png, corri chmod +xsu entrambi per renderli eseguibili e boom! Hai un collegamento rapido e semplice per queste operazioni spesso richieste che non richiedono di pensare o ricordare come funziona la CLI di Inkscape. (Ovviamente devi installare Inkscape prima che funzioni)


Ho fatto solo un rapido test delle prestazioni con imagemagick e inkscape con la generazione di dieci pdf e imagemagick è 5,77 volte più veloce. time for i in {1..10}; do time inkscape --without-gui -f "drawing.svg" --export-pdf="drawing$i.pdf"; done;real 0m2.192s time for i in {1..10}; do convert drawing.svg drawing$i$i$i.pdf; done;real 0m0.381s

6
Potrebbe essere più veloce, ma stai perdendo la natura vettoriale della grafica, quindi probabilmente è anche 10 volte più grande (anche se mi piacerebbe che tu mi correggessi se sbaglio). Il motivo per cui ci vuole più tempo è perché sta facendo delle vere manipolazioni vettoriali, che è molto più complessa della rasterizzazione (che è sostanzialmente equivalente al rendering).
metasaro l'

7

C'è Image Magick e Inkscape ha anche strumenti da riga di comando.


3
convertvince di gran lunga. È anche in grado di convertire da e verso formati esoterici che non sapevi nemmeno esistessero, e applicare più effetti a loro di cui avrai mai bisogno.
nuovo123456,

3
Giusto per chiarire i lettori non familiari, convertè uno strumento da riga di comando per ImageMagick.
Erika,

2
e un altro chiarimento: se usi Converti, passerai dal vettore al raster e perderai la possibilità di ridimensionare l'immagine. nel mio libro, è l'inkscape che vince. dipende solo da ciò di cui hai bisogno.
nsheff,


0

come so, esiste un modo per far funzionare Inkscape tramite cmd: ho già usato qualcosa di simile per esportare in batch le anteprime PNG dalla mia vasta collezione di SVG. Poiché Inkscape supporta anche l'esportazione di PDF tramite Cairo, dovrebbe essere possibile esportare anche PDF. Vorrei chiedere su alcuni forum Inkscape. :-)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.