如何将inkscape导出的文件打印到标准输出并从标准输入读取

Fer*_*ndo 3 svg png cgi inkscape

我想使用inkscape 为我正在创建的应用程序生成自定义Google 标记。由于谷歌地图不直接支持 SVG 文件,我打算更改 svg 文件中的参数,然后将该文件重定向到 Inkscape,最后将导出的 png 打印到标准输出,以便 CGI 脚本可以使用它来发送结果到浏览器显示。

有人对如何实现这一目标有任何建议吗?

Joc*_*oce 5

在Unix / Linux环境下,你可以使用pseudofiles/dev/stdin/dev/stderr与bash shell中实现这一点,例如:

cat file.svg  | awk -f script.awk | inkscape /dev/stdin -e /dev/stderr 2> file.png 
Run Code Online (Sandbox Code Playgroud)

请注意,inkscape 将文本输出发送到/dev/stdout(这是一个奇怪的选择),因此您必须使用stderrnot 让您的图像与此文本混合。

  • 如今,Inkscape 似乎确实有更好的选择:“--pipe”从标准输入读取而不是从给定的文件名读取,以及“--export-filename=-”(简写:“-e=-”写入到标准输出。 (3认同)
  • 基于这个答案和@Qqwy的输入,这里是获取PNG文件作为输出的命令行:```cat file.svg | awk -f 脚本.awk | inkscape --pipe --export-filename=- --export-type=png > file.png``` (2认同)