我有一个svg文件,我想在其中插入其他svg对象。
import svgwrite
dwg = svgwrite.Drawing('model.svg')
square = dwg.add(dwg.rect(20,20),(80,80), fill='blue'))
dwg.save()
它返回一个具有此形状的新文件,忽略我之前的文件。 我怎么能写这个?
感谢的
答案 0 :(得分:7)
我找到了一个模块来做到这一点
import svgutils.transform as st
template = st.fromfile('template.svg')
second_svg = st.fromfile('second.svg')
template.append(second_svg)
template.save('merged.svg')
我希望这也适合你。
答案 1 :(得分:2)
svgwrite
库不支持此功能 - 其目的是创建新的SVG文件,而不是使用现有的SVG文件。查看source for the Drawing
class,您可以看到在保存图形时,它会打开文件进行写入和截断;之前在该文件中的任何内容都会丢失:
def save(self):
""" Write the XML string to **filename**. """
fileobj = io.open(self.filename, mode='w', encoding='utf-8')
self.write(fileobj)
fileobj.close()