Paper.js PointText获取基线坐标而不是左下角

时间:2016-02-08 23:01:26

标签: javascript spacing paperjs

检查此Paper.js sketch。单击“TEXT”以查看边界框。请注意,我将leading属性设置为与字体大小相同。默认情况下,根据documentation,它是字体大小的1.2倍。

为什么PointText底部有边距空间?如何删除它以使边界框紧紧包裹文本?或者,如何确定文本真实基线的y值,而不是我们目前给出的值?

修改

底部的“边距”是指具有下行的字母,如q和p。所以这里真正的问题是如何获得PointText基线的y坐标?我特别需要基线,因为这是我们使用的另一个库插入文本的方式,插入需要相同。

2 个答案:

答案 0 :(得分:2)

间距是正确的。将“TEXT”更改为“Tejas”,您将看到字符“j”中的下行部分与大写字符的顶部之间的间距相等。

我不相信有办法获取PointText项的文本范围。

因此,我认为arthur.sw的建议是最好的答案。我做同样的事情,除非文字很简单,单行,不可编辑。我最终在画布上创建了一个文本框或文本区域并进行了适当的定位。这可能是长期的最佳解决方案;我不确定为什么纸张应该复制浏览器已经处理的所有内容。

使用此功能,您需要相对于正在显示的视图或画布定位文本。您可能希望使用MDNglobalToLocal

这是一个localToGlobal,它可以帮助我可视化项目的坐标空间和全局坐标空间之间的关系。

答案 1 :(得分:0)

根据您的约束,也许您的问题可以通过左上角排列并始终将前导设置为FontSize的95.5%来解决。对于大多数文本,这应该让你非常接近