Imagemagick je skvělý, když rastrovaný (pixelovaný) výstup je to, co chcete (nebo je alespoň přijatelný), ale jinak je to špatná volba, protože efektivně vloží do pdf rastrovanou verzi čehokoli, co se snažíte převést. Celý smysl svg/pdf je v tom, že jej lze vektorizovat, a tím zmenšit velikost, a přitom zůstat hladký při jakémkoli rozlišení.
Takže bych určitě doporučil použít buď Inkscape nebo CarioSVG. Ten má několik nástrojů příkazového řádku přesně pro tento účel (svg2pdf
, svg2ps
a svg2png
). Jediný háček je v tom, že je to v podstatě jen python vejce, takže pokud nemáte nastavené python prostředí a nejste dostatečně důvtipní (nebo se o něj nestaráte) na jeho nastavení, pak je tato možnost ne jít. Zkoušel jsem to sám, ale měl jsem problémy s nastavením požadovaného libcairo
(ne že bych se taky snažil těžké).
Inkscape je úžasný, ale cli je trochu neohrabané, pokud chcete jen rychlý malý příkaz, který udělá veškerou práci za vás. Dal jsem dohromady pár malých skriptů, které se o to všechno postarají za mě:
svg2pdf
#!/bin/bash
for i in [email protected]; do
inkscape --without-gui --export-pdf="$(basename $i .svg).pdf" $i
done
svg2png
#!/bin/bash
for i in [email protected]; do
inkscape --without-gui --export-png="$(basename $i .svg).png" $i
done
Vložte první do ~/bin/svg2pdf
a druhý v ~/bin/svg2png
, spusťte chmod +x
na obou, aby byly spustitelné, a bum! Pro tyto často požadované operace máte rychlou a snadnou zkratku, která nevyžaduje, abyste přemýšleli nebo si pamatovali, jak funguje CLI Inkscape. (Než to bude fungovat, musíte mít samozřejmě nainstalovaný Inkscape)
Existuje Image Magick a Inkscape má také nástroje příkazového řádku.
Inkscape
Do PDF:
inkscape -A a.pdf a.svg
do PNG:
inkscape -e a.png a.svg
Nalezeno na man inkscape
a Jak používat Inkscape v režimu příkazového řádku