我在codeigniter项目中使用mPDF。它适用于英语和俄语,但在意第绪语中,它只显示点(.(和逗号(,(,如下所示:
mPDF输出
而我在里面写的内容是:
意第绪语内容
这是我的代码:
$mpdf = new MpdfMpdf();
$mpdf->SetFont('avenirnext');
$mpdf->SetTitle($title);
$mpdf->SetAuthor('Blavatnik');
$mpdf->WriteHTML($stylesheet, 1);
$mpdf->WriteHTML($stylesheet2, 1);
$mpdf->WriteHTML($stylesheet3, 1);
$mpdf->setAutoTopMargin = 'stretch';
$mpdf->SetHtmlHeader($header, 'OE');
$mpdf->SetHTMLFooter($footer, 'OE');
$mpdf->WriteHTML($html);
if ($html2 != '' && $html3 != '') {
$mpdf->SetHtmlHeader($secondHeader, 'OE');
$mpdf->WriteHTML($html2);
$mpdf->SetHtmlHeader($header, 'OE');
$mpdf->WriteHTML($html3);
}
if ($transcriptHtml2 != '' && $transcriptHtml3 != '') {
$mpdf->WriteHTML($transcriptHtml2);
$mpdf->WriteHTML($transcriptHtml3);
}
$mpdf->Output($title . '.pdf', 'I');
我也尝试过使用以下解决方案:
$mpdf = new mPDF('utf-8');
$mpdf->SetDirectionality('rtl');
还有什么我可以改变它,使它适用于所有语言,或者主要是意第绪语。谢谢
您必须使用支持希伯来文字符的字体。此外,avenirnext
不在标准发行版中,您也没有配置其他字体。
删除SetFont
调用并使用
$mpdf->autoLangToFont = true;
以及围绕希伯来文/yiddish文本的div
或span
中的lang="yi"
或lang="he"
。
您也可以在autofont mPDF示例文件中找到示例代码。
如果使用$mpdf = new MpdfMpdf();
简单的解决方案是在它下面添加:
$mpdf->autoScriptToLang = true;
$mpdf->autoLangToFont = true;
这都是