0

我使用的是 fabricJS 3.0.0 和 2.7.0,但两个版本都不支持 ITexts 上的粗体和斜体样式。

我尝试过的是:

1. this.canvas[0].getActiveObject().setSelectionStyles({fontWeight:'bold'});
   this.canvas[0].renderAll();

2. this.canvas[0].getActiveObject().set('fontWeight', 'bold');
   this.canvas[0].renderAll();

但是他们都没有使用粗体或斜体,任何人都可以为画布提供建议或补丁吗?

4

1 回答 1

0

如果要使用setSelectionStyles则需要先选择一些文本或作为参数传递,直接将样式设置到文本对象将导致应用整个文本。

演示

var canvas = new fabric.Canvas('c');
var text = new fabric.Text('Hello Fabricjs');
canvas.add(text);
setTimeout(function(){
  var selectionStart = 2,
  selectionEnd = 8;
  text.setSelectionStyles({fontWeight:'bold',fontStyle:'italic' }, selectionStart, selectionEnd);
  //text.set('fontWeight', 'bold');
  canvas.renderAll();
},1000)
canvas{
  border:1px solid;
}
<script src="http://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.0.0/fabric.js"></script>
<canvas id='c'></canvas>

于 2019-06-07T06:55:59.593 回答