【发布时间】:2020-08-05 19:48:17
【问题描述】:
该字体用于波斯字符,但我希望使用普通字体而不是我设置的字体正常呈现英语和其他字符。
代码:
$pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$lg = Array();
$lg['a_meta_charset'] = 'UTF-8';
$lg['a_meta_dir'] = 'rtl';
$lg['a_meta_language'] = 'fa';
$lg['w_page'] = 'page';
$pdf->setLanguageArray($lg);
$fontname = TCPDF_FONTS::addTTFfont(storage_path('bnazanin.ttf'), 'TrueTypeUnicode', '', 96);
$pdf->SetFont($fontname);
$pdf->AddPage();
$htmlpersian = '<span color="#660000">Persian example:</span><br />سلام بالاخره مشکل PDF فارسی به طور کامل حل شد. اینم یک نمونش.<br />مشکل حرف \"ژ\" در بعضی کلمات مانند کلمه ویژه نیز بر طرف شد.<br />نگارش حروف لام و الف پشت سر هم نیز تصحیح شد.<br />با تشکر از "Asuni Nicola" و محمد علی گل کار برای پشتیبانی زبان فارسی.';
$pdf->WriteHTML($htmlpersian, true, 0, true, 0);
$pdf->setRTL(false);
$pdf->Ln();
$pdf->Output('example.pdf', 'I');
【问题讨论】:
-
如果您希望不同文本的字体不同,那么您必须告诉库不合逻辑吗?这个库怎么知道哪些字符是英文的,甚至更好的是,哪些字符在你设置的字体中不可用?它怎么知道要切换到什么其他字体?
-
@DavidvanDriessche 浏览器或文本处理器如何知道?这里也一样。
-
他们没有。他们使用你给它的字体。
-
@DavidvanDriessche 好的,我想我必须将此字体与普通字体合并