检查此Paper.js sketch。单击“TEXT”以查看边界框。请注意,我将leading
属性设置为与字体大小相同。默认情况下,根据documentation,它是字体大小的1.2倍。
为什么PointText底部有边距空间?如何删除它以使边界框紧紧包裹文本?或者,如何确定文本真实基线的y值,而不是我们目前给出的值?
修改
底部的“边距”是指具有下行的字母,如q和p。所以这里真正的问题是如何获得PointText基线的y坐标?我特别需要基线,因为这是我们使用的另一个库插入文本的方式,插入需要相同。
答案 0 :(得分:2)
间距是正确的。将“TEXT”更改为“Tejas”,您将看到字符“j”中的下行部分与大写字符的顶部之间的间距相等。
我不相信有办法获取PointText项的文本范围。
因此,我认为arthur.sw的建议是最好的答案。我做同样的事情,除非文字很简单,单行,不可编辑。我最终在画布上创建了一个文本框或文本区域并进行了适当的定位。这可能是长期的最佳解决方案;我不确定为什么纸张应该复制浏览器已经处理的所有内容。
使用此功能,您需要相对于正在显示的视图或画布定位文本。您可能希望使用MDN和globalToLocal
这是一个localToGlobal,它可以帮助我可视化项目的坐标空间和全局坐标空间之间的关系。
答案 1 :(得分:0)
根据您的约束,也许您的问题可以通过左上角排列并始终将前导设置为FontSize的95.5%来解决。对于大多数文本,这应该让你非常接近