0
我注意到Paper.text
的边界框并不等于文本的实际区域,但高度更高。我认为这是因为它正在查看字体中的某些信息,这些信息有可能是大的(斜杠)或位置非常高/低(overcores)的字形 - 至少这是我的理论 - 但是getBBox
高度而实际仍然看起来太大了。任何想法如何我可以获得文本的实际“印刷”大小?获取RaphaelJS中文本的实际边界框
这里有一些数字:
getBBox()结果:
height: 162.28235294117644
width: 1113.1764705882351
x: 13.411764705882433
x2: 1126.5882352941176
y: 13.411764705882351
y2: 175.6941176470588
SVG节点(从path.node)作为我的屏幕上测量
<text x="0" y="93.88235294117646" text-anchor="start" font-family="Franklin Gothic Demi Cond" font-size="107px" stroke="none" fill="#ffffff" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: start; font-family: "Franklin Gothic Demi Cond"; font-size: 107px;" transform="matrix(2.3865,0,0,1.3412,13.4118,-31.329)" stroke-width="0.4190289116994294"><tspan dy="37.491727941176464" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">Hello World</tspan></text>
实际尺寸/位置:
x: 30px
y: 50px
width: 1085px
height: 97px
当我使用Paper.print()
事情没问题时 - 由于复杂字形的性能问题,我切换到Paper.text()
。
编辑 - 最重要的是,它似乎getBBox
是不是跨浏览器兼容。使用Pauls的片段answer FF和Chrome显示比较结果。
这就是我遇到的问题。你的例子使用低/高元素的字形,但如果我说只输入“aaaa”,我会希望矩形只覆盖该区域,而不是添加〜40px的空白区域。我需要知道我使用的实际文字需要多少空间。 – cyberwombat
Argh ..看起来getBBox与浏览器不兼容:FF和Chrome显示不同大小 – cyberwombat
只有非常微小的差别Chrome(0,35.3594,539.313,119)与Firefox(0,35.3741,539.117,120)对你有所帮助? –