我正在使用 pdf 上的印地语文本。虽然正在生成印地语文本,但它显示为错位的 matras。假设我有像“ज़िन्दगी”这样的词,但它显示为
如果我复制此文本并粘贴到 Libre Office Writer 上,则它可以正确打印。我用 tcpdf 尝试了将近两种字体。 Arial Unicode MS 以及 Lohit_hi
$tcpdf->SetFont('arialuni', 'B', 15, 'false');
$html = nl2br($result['Song']['hindi']);
$tcpdf->writeHTMLCell(0, 20, 20, 25, $html);
为什么明明是性格却放错了位置。
最佳答案
如果我将“ज़िन्दगी”复制并粘贴到 microsoft word 中,默认情况下,它显示如下:
它实际上是完全相同的 unicode 字符字符串(即,一个 िन 后跟一个 virama,再后跟一个 द),但它只是以不同的方式呈现,具体取决于字体。 Unicode 字体具有复杂的逻辑来决定何时将特定字符串替换为不同的字形,而您的 PDF 使用的字体不支持您想要的特定替换。
您只需找到一种支持该替换的字体,并确保您的 PDF 正在使用该字体。 (这可能是你当前的 setFont 调用没有正常工作,或者你指定的字体在你设置时不可用,所以它使用系统默认的印地语字符字体,不支持您所指的替换)。
关于php - Windows 和 Ubuntu 上印地语 Unicode 的打印问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18560470/