如何从linux命令行纵向连接SVG文件?

时间:2012-03-08 03:17:24

标签: linux command-line svg imagemagick image-manipulation

我有一系列方形SVG文件,我想纵向排列成一个超长SVG文件。

我尝试使用imagemagick来组合它们。基于此页面: http://linux.about.com/library/cmd/blcmdl1_ImageMagick.htm

和这个

http://www.imagemagick.org/Usage/compose/

我试过这个命令

composite 'file1.svg' 'file2.svg' +adjoin 'outputfile.svg'

但是,我收到以下错误消息: composite: unrecognized option '+adjoin' @ error/composite.c/CompositeImageCommand/565.

我尝试了其他几个imagemagick命令(转换,显示),但没有成功。如何在命令行上组合这些文件?是否有inkscape命令执行此操作?

2 个答案:

答案 0 :(得分:3)

目前没有方便的方法只使用命令行而不使用自定义脚本。

我目前可以找到的最近的预先写好的东西(2012年4月16日)是https://github.com/astraw/svg_stack,它允许你编写以下形式的命令:

svg_stack.py --direction=h --margin=100 red_ball.svg blue_triangle.svg > shapes.svg

连接。

答案 1 :(得分:1)

如果您愿意使用脚本语言,那应该很容易。对于每个文件,只需为所有id标记添加前缀;所以在文件1中,id="circle"变为id="file1_circle",而在文件2中,id="circle"变为id="file2_circle"

在大多数情况下,您可以轻松搜索并替换(查找id="并将其替换为id="fileX_)尽管可能会出现无效的情况(特别是如果有的话)例如,查找字符串出现在文本项中。

如果你想以“正确的方式”这样做,你需要一个XML解析器(例如PHP中的XMLReader)。