Node.js 使用节点画布从右到左编写段落,基于Cairo的实现

Node.js 使用节点画布从右到左编写段落,基于Cairo的实现,node.js,image-processing,cairo,node-canvas,Node.js,Image Processing,Cairo,Node Canvas,我试图在node.js服务器上生成包含从右到左文本的图像 我目前正在使用NodeCanvas(基于“Cairo”),但如果其他库也会这样做,我会提供一些建议 要明确的是: 我需要支持,能够写从右到左的文本 实际字体与此问题无关,字体的方向也不相关。 例如:我不介意在我的软件中倒着写单词,只要它们在图像中从右到左显示。(例如,希伯来语不受支持,如果我写“ת•הה”一词,它将改为“התהד”。我可以处理这个问题,问题是段落方向。) 下面是一个解决问题的方法: smartReverse: functi

我试图在node.js服务器上生成包含从右到左文本的图像

我目前正在使用NodeCanvas(基于“Cairo”),但如果其他库也会这样做,我会提供一些建议

要明确的是:

  • 我需要支持,能够写从右到左的文本
  • 实际字体与此问题无关,字体的方向也不相关。 例如:我不介意在我的软件中倒着写单词,只要它们在图像中从右到左显示。(例如,希伯来语不受支持,如果我写“ת•הה”一词,它将改为“התהד”。我可以处理这个问题,问题是段落方向。)

  • 下面是一个解决问题的方法:

    smartReverse: function(str) {                     // Reverse a string considering english letters and and numbers.
        return str                                    // by taking it and
            .split(/\s+/)                            // splitting it into words
            .reverse()                               // and reversing the word order
            .map(function(word) {
                // and then changing each word
                return (/^[0-9\.]+$/.test(word) || /^[a-zA-Z0-9?><;,{}[\]\-_+=!@#$%\^&*|']+$/.test(word)) ?     // if it's a number or an english word
                    word :                              // into itself
                    word.split("").reverse().join("");                  // or otherwise into its reverse
            })
            .join(" ")                                  // put it back together
            ;
    }
    
    smartReverse:function(str){//根据英文字母和数字反转字符串。
    通过获取str//并
    .split(//\s+/)//将其拆分为单词
    .reverse()//并反转词序
    .map(函数(word){
    //然后改变每个单词
    
    return(/^[0-9\.]+$/.test(word)| |/^[a-zA-Z0-9?>我对node.js一无所知,但Pango是jobHi的合适库,你解决了这个问题吗?@user2951807在我的Ubuntu服务器中无需制作任何东西,node canvas与我使用的希伯来文字体如出一辙,但是在我的本地开发机器(Macbook Pro)上这些字母是倒写的。因为我不想在这个问题上浪费时间,我只是在用节点画布绘制它们之前颠倒了包含希伯来文字母的字符串。我希望这不会是答案:(我想我也需要把它倒过来。谢谢!@user2951807我添加了一个智能倒过来的答案,让你轻松一点谢谢你的尝试,但这还不够。当str与rtl单词和ltr单词在同一个句子中,甚至括号或新行中混合时,这个功能非常基本,没有帮助。我们需要的解决方案是一个可以得到tex的答案tarea输出和wich可以是任何东西,包括数学公式,并在需要时完全反转。