mfpdf 中的 WriteHTML 显示正方形

问题描述

我在 codeigniter 中使用 mpdf,输出显示方块而不是韩语。

这是我在 writeHTML 中的代码

$mpdf = new Mpdf\Mpdf('zh-aCJK');

$mpdf->WriteHTML('<div style="line-height:140%;font-size:12px;margin-top:15px;margin-bottom:35px;"><span style="color:#666666;font-family:/*Some korean font*/;font-size:12px;background-color:#ffffff;">세계를 </span><span class="ex" style="color:#DC143C;font-family:/*Some korean font*/;font-size:28px;background-color:#ffffff;">에 대하여</span><span style="color:#666666;font-family:/*Some korean font*/;font-size:28px;background-color:#ffffff;"> 너와 나,</span></div>');

输出

enter image description here

感谢您的帮助。

解决方法

您的构造函数参数错误,mPDF 接受一个数组。设置您的开发环境,以通过通知对其进行“警告”。

您指定的字体均未包含在 mPDF 发行版中,因此除非您正确设置它们,否则不会显示。默认替换是 DejavuSans,据我所知,它不支持韩语。

在一个文档中使用多种语言,使用

$mpdf = new Mpdf\Mpdf(['autoLangToFont' => true]);

$mpdf->WriteHTML('<div style="line-height:140%;font-size:12px;margin-top:15px;margin-bottom:35px;">
    <span lang="zh">세계를 </span>
    <span lang="ko">에 대하여</span>,<span lang="ko"> 너와 나,</span>
</div>');

$mpdf->Output('example000.pdf','F');

(样式清理。)这将为给定的语言选择合适的字体系列。请注意,我只是在估算语言代码 - 我对 CJK 写作知之甚少。如果您的所有文字都是韩文,那么 zh-aCJK 模式首先就没有意义。

如果您想要一个支持 CJK 的自定义字体,请遵循自定义字体的大量文档。

https://mpdf.github.io/fonts-languages/fonts-in-mpdf-7-x.html

阅读有关整体配置的更多信息,包括非拉丁脚本

https://mpdf.github.io/fonts-languages/choosing-a-configuration-v7-x.html