繁体   English   中英

svgwrite - 如何启用将其他对象写入/添加为现有.svg文件的层

[英]svgwrite - How to enable write/add other objects as layers of an existing .svg file

我有一个svg文件,我想在这个存在中插入其他svg对象。

import svgwrite

dwg = svgwrite.Drawing('model.svg')
square = dwg.add(dwg.rect(20,20),(80,80), fill='blue'))
dwg.save()

它返回一个具有此形状的新文件,忽略我之前的文件。 我怎么写这个?

谢谢

我找到了一个模块来做到这一点

import svgutils.transform as st

template = st.fromfile('template.svg')
second_svg = st.fromfile('second.svg')
template.append(second_svg)
template.save('merged.svg')

我希望这也适合你。

svgwrite库不支持此功能 - 其目的是创建新的SVG文件,而不是使用现有的SVG文件。 查看Drawing源代码 ,可以看到在保存图形时,它会打开文件进行写入和截断; 之前在该文件中的任何内容都会因此丢失:

def save(self):
    """ Write the XML string to **filename**. """
    fileobj = io.open(self.filename, mode='w', encoding='utf-8')
    self.write(fileobj)
    fileobj.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM