我正在尝试生成一个包含乌尔都语文本的 PDF 文件。我尝试了几种字体,例如:Jameel Noori Nastaleeq、Alvi Nastaleeq、Arial Unicode 等。但有些字符显示不正确。当我从 PDF 复制文本并将其粘贴到另一个程序(如记事本)时,文本会正确显示。我正在使用此代码将 .ttf 文件转换为 TCPDF 格式。
require_once('TCPDF/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$fontname = TCPDF_FONTS::addTTFfont('includes/Fonts/JameelNooriNastaleeqRegular.ttf', 'TrueTypeUnicode', '', 32);""
该代码创建了三个文件:jameelnoorinastaleeq.php、jameelnoorinastaleeq.z、jameelnoorinastaleeq.ctg.z。
然后在 PHP 页面中,这是我的代码:
require('TCPDF/tcpdf.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set some language dependent data:
$lg = Array();
$lg['a_meta_charset'] = 'UTF-8';
$lg['a_meta_dir'] = 'rtl';
$lg['a_meta_language'] = 'fa';
$lg['w_page'] = 'page';
// set some language-dependent strings (optional)
$pdf->setLanguageArray($lg);
// ---------------------------------------------------------
// set font
$pdf->SetFont('jameelnoorinastaleeq','',12);
// add a page
$pdf->AddPage();
// Urdu content
$htmlurdu = '<span color="#660000">Urdu example:</span><br />احساسات: اکساہٹ(جوش۔تحریک)؛اعصابی؛
<br />احساسات: اُوپر تک کھدائی کا؛"سوراخ کرنا(نقب لگانا)بل کھودنےیا بنانے کا۔؛جڑ سے اکھاڑنے۔کھود کر نکالنےکا""احساس؛"<br />احساسات: اکڑن(سختی)؛اعضاء(بازو اور ٹانگوں)کے جوڑوں کا؛(بے ڈھنگے پن(اناڑی پن)کا؛)
<br />احساسات: اینٹھن(مروڑ۔کھچاؤ)؛بیرونی(خارجی)طورپر؛';
$pdf->WriteHTML($htmlurdu, true, 0, true, 0);
//Close and output PDF document
$pdf->Output('testUrdu.pdf', 'I');
乌尔都语文本显示如下:
???????: ??????(?????????)????????
我尝试使用外部网站将 JameelNooriNastaleeq.ttf 文件转换为 TCPDF 格式。我使用了这个网站http://fonts.palettize.me/然后将生成的文件复制到 TCPDF/fonts 目录,但它没有工作。乌尔都语文本仍然无法正确显示。
我尝试了此处发布的解决方案:Urdu supported PDF library compatible with php。但是有些乌尔都语字符使用 ARIAL UNICODE MS 字体的可读性很差。我尝试对字体 Jameel Noori Nastaleeq 做同样的事情,但没有奏效。PDF 显示很多空格和很少的字符,当我将文本复制到另一个编辑器时,它会正确显示。
我花了几个小时试图解决这个问题。显示英文字符时没有任何问题,但乌尔都语不起作用。有时会显示“?” 其他时间显示空格。
请帮我!