是否有免费的Linux命令行工具将SVG转换为PDF和/或某些常用位图格式(例如PNG)?
是否有免费的Linux命令行工具将SVG转换为PDF和/或某些常用位图格式(例如PNG)?
Answers:
当您要光栅化(像素化)的输出是您想要的(或至少可以接受)时,Imagemagick很棒,但否则是一个不好的选择,因为它有效地将要转换的任何内容的光栅化版本嵌入到pdf中。svg / pdf的全部要点是可以对其进行矢量化处理,从而使其尺寸更小,同时在任何分辨率下均保持平滑。
因此,我绝对建议您使用Inkscape或CarioSVG。后者具有多个命令行实用程序正是用于此目的(svg2pdf
,svg2ps
和svg2png
)。唯一的困难是它基本上只是一个python鸡蛋,因此,如果您没有设置python环境并且不足够(或不太在意)设置一个python环境,则该选项为no走。我尝试了一下,但是在设置必需项时遇到了问题libcairo
(不是我尝试得太努力了)。
Inkscape很棒,但是如果您只想快速执行一点命令即可为您完成所有工作,那么cli就会有些笨拙。我整理了一些小脚本来为我完成所有这些工作:
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
将第一个放进去,将第二个~/bin/svg2pdf
放进去~/bin/svg2png
,chmod +x
在它们两个上运行以使其可执行,然后开始繁荣!您可以通过快捷简便的方式完成这些常用操作,而无需考虑或记住Inkscape的CLI的工作方式。(很明显,您需要先安装Inkscape才能起作用)
time for i in {1..10}; do time inkscape --without-gui -f "drawing.svg" --export-pdf="drawing$i.pdf"; done;
真实0m2.192s time for i in {1..10}; do convert drawing.svg drawing$i$i$i.pdf; done;
真实0m0.381s
有Image Magick,Inkscape也有命令行工具。
convert
到目前为止赢。它甚至能够与您甚至不知道存在的深奥格式进行转换,并向您应用它们所需要的更多效果。
convert
是ImageMagick的命令行工具。
mogrify -format pdf -- *.svg