Czy jest dostępne bezpłatne narzędzie wiersza polecenia Linux do konwersji SVG na PDF i / lub jakiś powszechnie używany format bitmapowy (na przykład PNG)?
Czy jest dostępne bezpłatne narzędzie wiersza polecenia Linux do konwersji SVG na PDF i / lub jakiś powszechnie używany format bitmapowy (na przykład PNG)?
Odpowiedzi:
Imagemagick jest świetny, gdy zrasteryzowane (pikselowane) wyjście jest tym, czego chcesz (lub przynajmniej jest akceptowalne), ale jest złym wyborem, ponieważ skutecznie osadza w pdf zrasteryzowaną wersję tego, co próbujesz przekonwertować. Istotą svg / pdf jest to, że można go wektoryzować, dzięki czemu ma mniejszy rozmiar, zachowując płynność w dowolnej rozdzielczości.
Zdecydowanie poleciłbym użycie Inkscape lub CarioSVG . Ten ostatni ma kilka narzędzi linii polecenia dokładnie w tym celu ( svg2pdf
, svg2ps
i svg2png
). Jedyną przeszkodą jest to, że jest to po prostu jajo pytona, więc jeśli nie masz skonfigurowanego środowiska python i nie jesteś wystarczająco bystry (lub nie dbasz wystarczająco), aby go skonfigurować, wtedy ta opcja jest nie udać się. Próbowałem sam, ale miałem problemy z ustawieniem wymaganych libcairo
(nie dlatego, że próbowałem zbyt mocno).
Inkscape jest niesamowity, ale cli jest trochę niezręczny, jeśli chcesz tylko szybkie polecenie, aby wykonać całą pracę za Ciebie. Złożyłem kilka małych skryptów, aby zająć się tym wszystkim za mnie:
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
Włóż pierwszą ~/bin/svg2pdf
i drugą ~/bin/svg2png
, uruchom chmod +x
na nich obie, aby były one wykonywalne i bum! Masz szybki i łatwy skrót do tych często poszukiwanych operacji, które nie wymagają myślenia ani zapamiętywania działania interfejsu CLI Inkscape. (Oczywiście potrzebujesz Inkscape zainstalowanego zanim to zadziała)
time for i in {1..10}; do time inkscape --without-gui -f "drawing.svg" --export-pdf="drawing$i.pdf"; done;
prawdziwe 0m2.192s time for i in {1..10}; do convert drawing.svg drawing$i$i$i.pdf; done;
prawdziwe 0m0.381s
Istnieje Magia obrazu , a Inkscape ma również narzędzia wiersza poleceń.
convert
zdecydowanie wygrywa. Jest nawet w stanie konwertować do iz ezoterycznych formatów, o których istnieniu nawet nie wiedziałeś, i stosować do nich więcej efektów, niż kiedykolwiek będziesz potrzebować.
convert
jest narzędziem wiersza polecenia dla ImageMagick.
Inkscape
Do pliku PDF:
inkscape -A a.pdf a.svg
do PNG:
inkscape -e a.png a.svg
Znalezione w man inkscape
i Jak używać Inkscape w trybie wiersza poleceń
jak wiem, istnieje sposób obsługi Inkscape za pomocą cmd - już użyłem czegoś podobnego do wsadowego eksportu PNG z mojej ogromnej kolekcji SVG. Ponieważ Inkscape obsługuje także eksport plików PDF za pośrednictwem Kairu, eksport plików PDF również powinien być możliwy. Chciałbym zapytać na jakimś forum Inkscape. :-)
mogrify -format pdf -- *.svg