2013-02-05 76 views
2

在代碼中進行了一些挖掘之後,我意識到在PIXELS中正在測量fabricjs Text對象的fontSize。在我的項目中,有時我需要使用點而不是像素。Fabricjs文本對象fontSize單位

我發現在代碼中只有一個地方被指定的單位時,這個片段:

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

將我打破依賴(基於該領域的任何指標的具體計算),如果我只是將替換「px '與'pt'???

PS:有關於fontSize的單位的文件中沒有信息/在fabric.Text對象的指標,它會很好的補充,以節省時間,其他...

+1

我更新了文檔以指定「px」作爲fontSize的單位。你是對的,PT(或任何其他非PX單位)不支持。您可以通過在應用程序級別進行轉換來解決此問題。 – kangax

回答

3

最近,一個「parseUnit」方法已被添加。

您可以定義使用SetFontSize功能如下:

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

在fabricjs DPI設置爲96(可以改變)和「pt'is轉換以這樣的方式

return number * fabric.DPI/72 

在這樣你可以使用'mm','cm','in','pt','pc','em'