在不访问DOM的情况下获取SVG中文本的大小

时间:2019-06-09 20:31:18

标签: javascript node.js svg

我想在服务器上创建一系列指令,说明如何创建SVG元素,然后将该数据传递给浏览器以进行简单循环。这非常简单,除了我的计算取决于某些文本占用的空间之外,除了绘制并使用getBBox()外,我不知道该如何获得它,但这需要一个DOM。

当我想在SVG可见之前进行计算时,客户端也会出现此问题。

有没有办法做到这一点?考虑这个问题时,node.js的操作听起来很复杂,特别是因为它可能会受到CSS的影响,但是如果我们假设在元素本身上指定了字体大小等,是否有办法?

请注意,SVG的内容是完全动态的,并且字体大小等可由用户即时指定。

1 个答案:

答案 0 :(得分:1)

恐怕不可能做到。
特别是在服务器端。
文本渲染不仅取决于字体,字体大小,行高和其他字体,还取决于浏览器,甚至取决于所渲染的操作系统。

为获得准确的结果,我建议在浏览器中渲染文本并获取其边界框。