使用Python旋转和缩放完整的.SVG文档

1 svg python-2.7

我有一张SVG图纸(来自建筑物地图),我想将整个文件顺时针旋转90度.现在,绘图方向是纵向,想法是横向方向.

除此之外,我想扩展完整的文档(包括所有元素).

目前,我无法在网上找到这样做的可能性.所以这就是我要问的原因.我的问题是:

  1. 可能吗?
  2. 如果是的话,这可以用这种方式完成?谁愿意帮助解决这个问题.

And*_*Che 7

我设法用svgutils模块旋转SVG图.它可以用pip安装.

>>> import svgutils
>>> svg = svgutils.transform.fromfile('camera.svg')
>>> originalSVG = svgutils.compose.SVG('camera.svg')
>>> originalSVG.rotate(90)
>>> originalSVG.move(svg.height, 10)
<svgutils.compose.SVG object at 0x7f11dc78fb10>
>>> figure = svgutils.compose.Figure(svg.height, svg.width, originalSVG)
>>> figure.save('svgNew.svg')
Run Code Online (Sandbox Code Playgroud)

请注意,必须在标记中的原始svg文件中指定widthheight属性svg

我用的参考

实际上,这个方法没有对元素做任何事情,除了gtransform属性标记包装它们.但似乎使用此模块,您可以访问SVG树中的每个元素,并使用它们执行任何操作.

扩展SVG也很容易:

>>> originalSVG.scale(2)
<svgutils.compose.SVG object at 0x7f11dc78fb10>
>>> figure = svgutils.compose.Figure(float(svg.height) * 2, float(svg.width) * 2, originalSVG)
>>> figure.save('svgNew.svg')
Run Code Online (Sandbox Code Playgroud)