如果您想知道为什么这是必要的,或者想提出更好的方法来解决更大的问题,请随时询问更多上下文。(它涉及在校园地图上布置一堆建筑平面图,并找到这些建筑地图中某些事物的绝对位置;更多细节使问题陷入困境。)
简短的版本是我想获取一个具有 <image xlink:href="something.svg" /> 引用的 SVG 文件并将其合并到一个大文件中,每个引用的 SVG 都嵌入一个 <svg> 和内联 SVG XML内容。
因此,我的顶级源文件(在 Inkscape 中编写)如下所示:
<image xlink:href="floorplans/bldg1.svg"
width="165.52684" height="107.10559" y="-1937.7657"
x="2507.1565" transform="matrix(0,1,-1,0,0,0)" />
我尝试合并版本以内联所有矢量数据:
<svg x="2507.1565" y="-1937.7657" width="165.52684" height="107.10559"
transform="matrix(0,1,-1,0,0,0)" viewBox="0 0 1224 792">
<g id="surface0">
<path style="fill:none;stroke-width:0.72;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);...
因此,基本上我使用脚本将 <image> 替换为 <svg> 并粘贴到“floorplans/bldg1.svg”的根 <svg> 的内容中。(将 <image> 的属性复制到 <svg>,并将 viewBox 属性从原始 <svg> 复制到新的。)
这种技术适用于不旋转的东西,但 Chrome 似乎在说这个特定元素不在视口的顶部。我是 SVG 的新手,但我认为 <svg> 上的转换顺序与 <image> 上的不同。我是否犯了一个我没有发现的愚蠢错误,或者在将 <image xlink:href="something.svg" transform=... /> 转换为具有内联 XML 的 <svg> 时涉及更多内容?
谢谢。