为什么阿拉伯语Noto字体(或其他阿拉伯字体)在HTML / CSS中呈现不正确?

问题描述 投票:1回答:1

我正在使用Google Noto Sans Serif Font渲染阿拉伯文本,看起来像这样:

enter image description here

注意在某些地方如何对齐很多

enter image description here

我的HTML文档非常简单,本质上就是这样:

<html>
  <head>
    <meta charset="utf-8">
    <style>
      @font-face {
        font-family: Noto;
        src: url(./arabic.ttf);
      }

      body {
        font-family: "Noto";
      }

      .line {
        white-space: pre;
      }
    </style>
  </head>
  <body dir='rtl'>
    the arabic text...
  </body>
</html>

它所做的就是将Google Noto字体添加到body,然后有一堆<div class='line'>arabic text...</div>行。

但是,在上面的图片中,有两个[问题。

首先是,文本似乎没有正确地

视觉对齐。感觉是jumbledjagged,而不是具有清晰的基线。在某些部分中,单词或字符的主要水平延伸甚至是水平基线的“平均”位置。其次,我不懂阿拉伯语的atm,但似乎有些字符有些许偏移,以免以一种干净的方式草书连接,就像在某些情况下渲染算法搞乱了。我只是误解了这种外观,还是实际上存在这些视觉问题?如果这些是缺陷,我该如何修复它,并通过CSS或其他方式使阿拉伯文本更整齐,更水平地对齐。如果完全相关,我正在使用wkhtmltopdf从HTML生成PDF,这就是该图像。

我正在使用Google Noto Sans Serif字体呈现阿拉伯文本,如下所示:请注意在某些地方对齐方式有很多偏离。我的HTML文档非常简单,本质上是...

我认为问题出在转换(wkhtmltopdf),而不是CSS。为什么不使用Chrome之类的浏览器将HTML转换为PDF?它更适合阿拉伯文本。阿拉伯文字通常比常规文字需要更高的行高,例如1.6
body { line-height: 1.6; }
附带说明,我建议使用Vazir字体。它以最佳方式呈现包含变音符号的文本。
html css user-interface fonts arabic
1个回答
0
投票
附带说明,我建议使用Vazir字体。它以最佳方式呈现包含变音符号的文本。
© www.soinside.com 2019 - 2024. All rights reserved.