FabricJs:IText增加了额外的填充

时间:2017-10-03 15:17:22

标签: canvas fabricjs

我正在使用FabricJs创建一些文本图层,但我对齐线有问题。正在创建文本图层,并在图层边界和实际文本之间添加额外的空白空间。 我想要实现的是对齐线符合文本限制,但是,即使填充设置为0(这是默认值),它们也会对齐,包括空白空间。

我试图提出一个hacky解决方案,在图层上添加-7px填充,但看起来仍然很奇怪。

var iText2 = new fabric.IText('Text with negative padding', {
    fontFamily: 'Arial',
    left: 100,
    top: 250,
    fill: "#000000",
    stroke: "",
    padding: -7,
    transparentCorners: true
});

JSFiddle:https://jsfiddle.net/grieverll/5gabg92k/

1 个答案:

答案 0 :(得分:0)

我想出了一个hacky解决方案。我已经从fabricJS修改了AligningGuidelines功能,因此对于iText图层它的工作方式不同。

            if (activeObject.typeL == 'TEXT' && !activeTransformed) {
                activeObjectHeight -= (activeObjectHeight / 2.2);
                activeTransformed = true;
            }

            if (canvasObjects[i].typeL == 'TEXT') {
                objectHeight -= (objectHeight / 2.2);

            }

            if (canvasObjects[i].typeL !== 'TEXT' && activeObject.typeL !== 'TEXT') {
                //Default function code
            }

基本上,如果活动对象与另一个对象或文本图层对齐,我会强制修改高度。