SVG & font metrics
有没有办法在 SVG 中获取字体指标?
我想得到:下降、上升、最大高度、前进。
我需要这个来绘制文本
如果您有 DOM 访问权限,那么有许多用于文本元素的 SVG DOM 方法。然后是大多数 svg 元素都可用的 getBBox 方法。
如果您正在处理 SVGFonts,那么数据已经以 xml 格式作为普通属性可用,例如 ascent、descent 等。
对于您的用例,我推荐 getBBox,因为它也可以处理图形元素(以防您想在图表中添加更多内容而不仅仅是文本)。
- 我绝对不推荐使用 getBBox,因为它只尊重文本的绝对边界。但是,要正确放置文本,就必须尊重上升和下降。 SVGTextElement 的 y 属性指定基线的垂直位置。因此,仅使用 BBox 并没有多大帮助。问题是,SVG DOM 方法不允许查询上升和下降信息!我不知道为什么规范中缺少这个。
-
为了计算下降,这就是我所做的。将 SVG 中文本元素的"y"设置为零。现在你的基线为零。然后从 getBBox 获取"y2"属性,这将是"下降"的高度。