什么是浏览器友好的替代方案,由Inkscape生成的flow *元素?

时间:2015-04-10 21:11:02

标签: svg compatibility

在我正在进行的项目中,我有一些使用Inkscape生成的地图的视图。但是,我们遇到了一些小问题......具体来说,有些地图根本不会渲染文字。

在StackOverflow上发现some research这个问题之后,我发现了一些很好的理由:

  1. Inkscape生成SVG 1.1文档,而不是SVG 1.2文档,尽管包含flowRootflowRegionflowPara元素。我将我的地图更新为1.2版文档,但它没有帮助。
  2. 我读到,作为SVG 1.2标准一部分的那些flow*元素在大多数浏览器中实际上都没有实现,因为SVG 1.2从未被任何人接受。这解释了为什么没有任何哄骗导致我们的地图上的文字出现。
  3. 一般建议,如果要在浏览器中查看您的SVG,请使用<text>代替<flowPara>
  4. 这揭示了一个更深层次的问题,我无法从Google搜索中找到答案:Inkscape正在使用 可以呈现的其他垃圾来填充文档(分别为flowRootflowRegion),但IE / Chrome没有实现。

    问题:

    1. 什么广泛实施的SVG标记可以替代flowRoot
    2. 什么广泛实施的SVG标记可以替代flowRegion
    3. 如果不存在这样的替代方案,是否有一些简单的方法,甚至是一般的启发式方法,如何在现代浏览器(IE11或Chrome)上完全修改SVG文档?

2 个答案:

答案 0 :(得分:7)

在Inkscape中,选择流动的文本对象。转到“文本”菜单,然后选择“转换为文本”。

流动的文本元素现在将是纯<text>元素,并将在浏览器中正确显示。

答案 1 :(得分:1)

如果将文档另存为“ Optimized SVG”,Inkscape将警告您有关在浏览器中无法呈现的流元素。