【发布时间】:2016-07-04 13:16:40
【问题描述】:
我想使用 inkscape 为我正在创建的应用程序生成自定义 Google 标记。 由于 Google 地图不直接支持 SVG 文件,我打算更改 svg 文件中的参数,然后将该文件重定向到 Inkscape,最后将导出的 png 打印到标准输出,以便 CGI 脚本可以使用它来发送结果到浏览器中显示。
有人对如何实现这一目标有任何建议吗?
【问题讨论】:
我想使用 inkscape 为我正在创建的应用程序生成自定义 Google 标记。 由于 Google 地图不直接支持 SVG 文件,我打算更改 svg 文件中的参数,然后将该文件重定向到 Inkscape,最后将导出的 png 打印到标准输出,以便 CGI 脚本可以使用它来发送结果到浏览器中显示。
有人对如何实现这一目标有任何建议吗?
【问题讨论】:
在 unix/linux 环境中,您可以使用伪文件 /dev/stdin 和 /dev/stderr 来实现这一点,例如使用 bash 外壳:
cat file.svg | awk -f script.awk | inkscape /dev/stdin -e /dev/stderr 2> file.png
请注意,inkscape 会将文本输出发送到 /dev/stdout(这是一个奇怪的选择),因此您必须使用 stderr 以免图像与此文本混合。
【讨论】:
--pipe 从标准输入读取而不是从给定文件名读取,--export-filename=-(简写:-e=- 写入标准输出。
stdout 是否不再有与导出输出混合的虚假输出?