3

在对代码进行了一些挖掘之后,我意识到fabricjs Text 对象的fontSize 是在PIXELS 中测量的。在我的项目中,有时我需要使用点而不是像素。

当指定单位时,我在代码中只找到一个地方,这个片段:

    /**
 * @private
 * @method _getFontDeclaration
 */
_getFontDeclaration: function() {
  return [
    this.fontStyle,
    this.fontWeight,
    this.fontSize + 'px',
    (fabric.isLikelyNode ? ('"' + this.fontFamily + '"') : this.fontFamily)
  ].join(' ');
}

px如果我将' '替换为'',我会打破依赖关系(基于此字段的任何度量特定计算)pt吗?

ps:文档中没有关于fabric.Text对象的fontSize单位/指标的信息,很高兴添加它以节省其他人的时间......

4

1 回答 1

5

最近添加了一个“parseUnit”方法。

您可以按如下方式定义 setFontSize 函数:

fabric.Text.prototype.setFontSize = function(size) {
  this.fontSize = fabric.util.parseUnit(size);
  return this;
}

在fabricjs中,DPI设置为96(可以更改),'pt'以这种方式转换:

return number * fabric.DPI / 72

这样你就可以使用'mm', 'cm', 'in', 'pt', 'pc', 'em'

于 2015-10-12T22:23:52.770 回答