是否可以将一个inkscape SVG文档嵌入或链接到另一个文件中?


16

我想获取一个小的SVG文件(使用Inkscape创建),然后将其嵌入或链接到另一个(更大的)文件中。当希望通过浏览器显示时,我希望看到较小的浏览器显示在较大浏览器的某个占位符中。

可能吗?

Answers:


8

宁愿<use><image>作为后来是在一个固定的分辨率渲染并不会扩展定期矢量对象在当前文档中做。http://www.w3.org/TR/SVG11/struct.html#ImageElement

但是元素<use>不能引用整个SVG文件,其xlink:href属性是对SVG文档(http://www.w3.org/TR/SVG11/struct.html#UseElement)中的元素/片段的引用。“ use”元素可以引用任何本地或非本地资源。

例:

MyLibrary.svg:
<svg (...)>
        <rect x="0" y="0" width="200" inkscape:label="upper-left-blue"
              style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:none"
              id="upper-left-blue" height="200"/>

UseParts.svg:
        <use x="0" y="0" width="400" xmlns:xlink="http://www.w3.org/1999/xlink"
             xlink:href="MyLibrary.svg#upper-left-blue" xlink:type="simple"
             xlink:actuate="onLoad" height="400" id="use8793" xlink:show="embed"/>

据我所知(至少)它应在Inkscape,Firefox和Batik中正常运行,不同的SVG编辑器/查看器对该功能的支持可能有所不同。


我认为值得注意的是,Inkscape在0.91版本中增加了对此功能的支持。我添加了Inkscape ppa以在Mint 17(14.04 Ubuntu)上获得此版本。
雷夫·卡尔森

@LeifCarlsen究竟是什么?我似乎在0.91中找不到解决方法
rac2030

1
我在Inkscape外部生成具有此功能的文件,并使用Inkscape进行查看/渲染。
雷夫·卡尔森

嗯...好吧,我之前尝试过并失败了,但是也许我需要更加努力
rac2030

Ha没关系...通常是导致错误的用户...作为参考,我只是忘记添加xlink定义...我将名称空间添加到了顶部svg标记中,然后突然开始工作了;-)
rac2030

3

使用该image元素并引用您的SVG文件。为了娱乐,将以下内容另存为recursion.svg

<svg width="100%" height="100%" viewBox="-100 -100 200 200" version="1.1"
     xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink">
  <circle cx="-50" cy="-50" r="30" style="fill:red" />
  <image x="10" y="20" width="80" height="80" xlink:href="recursion.svg" />
</svg>

来源:https : //stackoverflow.com/questions/5451135/embed-svg-in-svg/5451238#5451238


至少在Windows上,这会以某种方式在Inkscape 0.48.4中导致“找不到链接的图像”消息。
mlt

也许在xlink:href前面加上“ ./”?为我工作。
伯特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.