
是否有免费的 Linux 命令行工具可以将 SVG 转换为 PDF 和/或一些常用的位图格式(例如 PNG)?
答案1
Imagemagick如果您需要栅格化(像素化)输出(或至少可以接受),则效果很好,但其他情况下则是个糟糕的选择,因为它实际上在 pdf 中嵌入了您要转换的内容的栅格化版本。svg/pdf 的重点在于它可以矢量化,从而尺寸更小,同时在任何分辨率下都保持平滑。
因此,我绝对建议使用Inkscape或者卡里奥SVG。后者有多个专门用于此目的的命令行实用程序(svg2pdf
、svg2ps
和svg2png
)。唯一的问题是它基本上只是一个 python egg,所以如果你没有设置 python 环境并且不够精明(或不够关心)来设置一个,那么这个选项就行不通了。我自己试过了,但在设置所需的环境时遇到了问题libcairo
(不是我试过的也难的)。
Inkscape 很棒,但是如果你只想用一个简单的命令来完成所有工作,那么它的 CLI 就有点笨重了。我整理了几个小脚本来帮我处理这一切:
svg转pdf
#!/bin/bash
for i in $@; do
inkscape --without-gui --export-pdf="$(basename $i .svg).pdf" $i
done
SVG转PNG
#!/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 才能运行)
答案2
答案3
Inkscape
转换为 PDF:
inkscape -A a.pdf a.svg
至 PNG:
inkscape -e a.png a.svg
发现于man inkscape
和如何在命令行模式下使用 Inkscape
答案4
据我所知,有一种方法可以通过 cmd 操作 Inkscape - 我已经使用类似的方法从我的大量 SVG 集合中批量导出 PNG 缩略图。由于 Inkscape 还支持通过 Cairo 导出 PDF,因此也应该可以导出 PDF。我会在 Inkscape 论坛上询问。:-)