2010-07-22 50 views
13

有什麼方法可以在SVG中獲取字體指標嗎? 我希望得到:下降,上升,最大高度,前進。SVG和字體指標

我需要這個在流程圖中一起繪製文本&圖形。

例如,我需要在文本週圍繪製一個框,並從大小(字母'x'的大小)中間繪製連接線,而不是從框邊的中心繪製連接線。

回答

3

如果你有DOM訪問,那麼有一些SVG DOM methods for text elements。然後是大多數svg元素可用的getBBox方法。

如果你正在處理SVGFonts,然後將數據以XML格式與一般屬性,已經可以如ascent, descent

爲您的使用情況我建議你getBBox,因爲它可以處理圖形元素也一樣(如果你想添加更多的東西,而不僅僅是文字到圖表)。

+2

我絕對不會推薦使用'getBBox',因爲它只考慮文本的絕對邊界。但是,要正確放置文本,必須尊重上升和下降。 SVGTextElement的'y'屬性指定_baseline_的垂直位置。因此只使用「BBox」不會有多大幫助。問題是,SVG DOM方法不允許查詢上升和下降信息!我不知道爲什麼這是規範中缺乏的。 – radlan 2013-06-13 08:04:57

+2

爲了計算下降,這是我做的。將SVG中的文本元素的「y」設置爲零。現在你的基線爲零。然後從getBBox獲取「y2」屬性,這將是您的「下降」的高度。 – Chad 2014-02-06 17:30:38