簡體   English   中英

在SVG中操作/翻譯<text>(添加邊界框)

[英]Manipulating/translating <text> in SVG (adding a bounding box)

問題 :我們需要復制在RaphaelJS中創建的SVG文本,其中SVG中的字體,字體,位置,比例,旋轉可變。

但是...... Raphael使用了一個文本邊界框,其高度與字符串的實際高度無關。 邊界框的高度基於font-size和font-family,但與實際字符串無關。 因此,一串“Y”和“,”(具有相同的font-face和font-size)具有相同的高度。

當我們在SVG中重新創建文本時(通過在PHP中生成它),我們可以得到正確的字體大小,並且字體系列正確。 但是,SVG的高度並不獨立於實際的字符串。 因此,“,”將具有比“Y”低得多的高度。 這種高度差異打破了旋轉和定位。

問題 :我們如何使用復制RaphaelJS的getBBox的'邊界框'創建svg(它基本上只是一個適合其中任何字符的框的尺寸),所以我們可以模仿RaphaelJS的旋轉和定位? 注意:如果有幫助,我們可以轉換SVG的text-> path。 我們還可以訪問字體文件。

在此輸入圖像描述

編輯 :通過使用matrix()命令並直接轉換轉換來解決問題,而不是應用定位,然后縮放,然后旋轉。

如果你想操縱單詞中的字符位置:句子和你在服務器上生成的SVG那么你應該能夠使用SVG TSPAN並定位字符位置。 如果您可以將字母更改為路徑,那么我認為該算法是可行的。 沒有什么可以阻止你為字母數字字體集創建一個相對位置數組。 我希望上面的一些有用......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM