FabricJS从右到左的文本方向

3

我试图使用希伯来语,这是一种“从右到左”的语言,但“默认的从左到右”设置会破坏所有标点符号。有什么方法可以在fabricJS文本元素中从“从左到右”改为“从右到左”?


目前我们不支持RTL文本。也许您可以在创建fabric.Text之前反转文本字符串? - kangax
不能使用原始元素的样式属性吗? - arty
@kangax,感谢您的回复。反转文本方向的问题在于我正在使用带有附加符号字符的希伯来语,这些字符按照该语言的方向排列。也许还有其他解决方法吗?或者有没有文件可以编辑以允许RTL?您认为RTL会很快得到支持吗? - alutz
RTL支持实际上不是我们的重点,因为我们在近期的路线图中有很多其他事情要做。除非有人贡献它。如果字母走向不同,水平翻转是否有帮助? - kangax
@kangax 这个有什么新进展吗? - Thakur Karthik
3个回答

1
你可以将RTL添加到你的画布中,这将解决你的问题。 使用fabric时,你有两个画布元素,所以:
对于视觉部分: 尝试这样做:
<canvas dir="rtl" ></canvas>

如果您想从此画布创建图像,请将RTL添加到上层画布:

$(".upper-canvas").css("direction","rtl");

我正在使用希伯来语,它运行得非常完美,也许有人可以将其添加到源代码中。

它对我来说就是不起作用。我正在使用Fabric JS 3.6.3。 - rostamiani

0
你可以使用'textAlign'属性并将其设置为右对齐。
例如:
var text = 'this is\na multiline\ntext\naligned right!';
var alignedRightText = new fabric.Text(text, {
  textAlign: 'right'
});

4
文本对齐和文本方向是两个不同的概念。对齐决定了整行文本位于左侧还是右侧,它定义了文本行的边界。但是,文本方向决定了文本行中单词是从右到左还是从左到右排列。这意味着,如果将方向属性设置为右侧,则光标始终在最右侧。 - Makan

0

还在寻找答案的朋友们,可以降级到版本4.6.0并在文本对象上使用textAlign:centerdirection:rtl


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接