【问题标题】:FabricJS Right to Left Text DirectionFabricJS 从右到左的文本方向
【发布时间】:2013-08-14 16:54:14
【问题描述】:

我正在尝试使用希伯来语,这是一种“从右到左”的语言,“默认 l”从左到右“设置会混淆所有标点符号。关于如何从“从左到右”更改为“右”的任何想法向左”在 fabricJS 文本元素中?

【问题讨论】:

  • 我们目前不支持 RTL 文本。也许您可以在创建 fabric.Text 之前反转文本字符串?
  • 不能使用原始元素的样式属性吗?
  • @kangax,感谢您的回复。反转文本方向的问题是我使用带有变音符号的希伯来语,这些字符朝着语言的方向发展。也许还有其他解决方法?或者也许是我可以编辑以允许 RTL 的文件?你认为 RTL 会很快得到支持吗?
  • RTL 支持确实是低优先级,我们在近期的路线图中还有很多其他的东西。除非其他人贡献它。如果字母的方向不同,水平翻转不应该有帮助吗?
  • @kangax 对此有何更新?

标签: javascript canvas right-to-left fabricjs


【解决方案1】:

您可以将 RTL 添加到您的画布中,这将解决您的问题。 使用织物,你有 2 个画布元素,所以:

对于视觉部分: 试试这个:

<canvas dir="rtl" ></canvas>

如果你想从这个画布创建一个图像,添加 RTL 到上面的画布:

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

我使用的是希伯来语,它运行良好,也许有人可以将它添加到源代码中。

【讨论】:

  • 这对我不起作用。我正在使用 Fabric JS 3.6.3
【解决方案2】:

您可以使用'textAlign'属性并将其设置为正确

例如

var text = 'this is\na multiline\ntext\naligned right!';
var alignedRightText = new fabric.Text(text, {
  textAlign: 'right'
});

【讨论】:

  • 文本对齐和方向是两个不同的概念。对齐决定了整条线的位置。向左,或向右。它定义了 LINE 的边界。但是方向决定了 LINE 中的单词是从右还是左排序。这意味着,如果方向属性设置为右侧,则光标始终位于最右端。
猜你喜欢
  • 1970-01-01
  • 2018-08-27
  • 1970-01-01
  • 1970-01-01
  • 2011-09-25
  • 2011-02-03
  • 1970-01-01
  • 2022-11-25
相关资源
最近更新 更多