首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >svgwrite -如何启用写入/添加其他对象作为现有.svg文件的层

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

Stack Overflow用户
提问于 2014-04-17 17:30:48
回答 2查看 3.3K关注 0票数 5

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

代码语言:javascript
复制
import svgwrite

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

它返回一个新文件,该形状忽略了我以前的文件。我怎么能写这个?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-05 22:10:55

我找到了一个模块

代码语言:javascript
复制
import svgutils.transform as st

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

我希望这也适用于你。

票数 11
EN

Stack Overflow用户

发布于 2014-04-17 17:55:55

svgwrite库不支持这一点--它的目的是创建新的SVG文件,而不是使用现有的文件。查看 class,您可以看到,当您保存绘图时,它会打开文件进行写入和截断;因此,以前在该文件中的任何内容都会丢失:

代码语言:javascript
复制
def save(self):
    """ Write the XML string to **filename**. """
    fileobj = io.open(self.filename, mode='w', encoding='utf-8')
    self.write(fileobj)
    fileobj.close()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23139709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档