php - Windows 和 Ubuntu 上印地语 Unicode 的打印问题

标签 php unicode pdf-generation cakephp-2.0 tcpdf

我正在使用 pdf 上的印地语文本。虽然正在生成印地语文本,但它显示为错位的 matras。假设我有像“ज़िन्दगी”这样的词,但它显示为

enter image description here

如果我复制此文本并粘贴到 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 中,默认情况下,它显示如下:

enter image description here

它实际上是完全相同的 unicode 字符字符串(即,一个 िन 后跟一个 virama,再后跟一个 द),但它只是以不同的方式呈现,具体取决于字体。 Unicode 字体具有复杂的逻辑来决定何时将特定字符串替换为不同的字形,而您的 PDF 使用的字体不支持您想要的特定替换。

您只需找到一种支持该替换的字体,并确保您的 PDF 正在使用该字体。 (这可能是你当前的 setFont 调用没有正常工作,或者你指定的字体在你设置时不可用,所以它使用系统默认的印地语字符字体,不支持您所指的替换)。

关于php - Windows 和 Ubuntu 上印地语 Unicode 的打印问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18560470/

相关文章:

php - 如何开始每天清洁数据库?

javascript - HTML - CSS - 响应式相同尺寸的图像网格,悬停时出现框

定义了 unicode 的 int _tmain ( int argc, TCHAR* argv[] ) 无法识别命令行参数

javascript - 检测浏览器/css 强制换行符中的换行符

javascript - 使用 AJAX 向 PHP Web 服务提交基本表单数据

php - 在 OpenCart 中通过 AJAX 加载产品内容

python - 如何查看爬取的unicode阿拉伯字符串?

c++ - 如何从 C stdio.h getline() 中替换/忽略无效的 Unicode/UTF8 字符?

macos - Chrome : How to print PDF with original size (100%, 无缩放/收缩)

pdf - 如何在经典 ASP 中创建 PDF 文件?