使用 TCPDF

问题描述

我正在尝试生成包含乌尔都语文本的 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,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,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 显示很多空格和很少的字符,当我将文本复制到另一个编辑器时,它显示正确。

我花了几个小时试图解决这个问题。显示文字符时没有任何问题,但乌尔都语不起作用。有时显示“?”其他时间显示空格。

请帮帮我!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)