怎么解决dompdf php乱码问题
dompdf php乱码的解决办法:首先找到“dompdf_font_family_cache.php”文件;然后修改family的名称即可。
本文操作环境:windows7系统、PHP7.1版,DELL G3电脑
php导出pdf,dompdf中文字体乱码解决办法(特别是代码迁移引起的乱码)
dompdflibfontsdompdf_font_family_cache.php记住这个文件里面存放的是字体生成的缓存,迁移时如果覆盖了这个文件会导致乱码而且很难找到出错的地方,相信我。。。。
dompdf是php把html导出pdf的工具,十分好用,除了个别css3的属性不支持,其他都非常不错,中文需要引用中文字体,具体办法官方有这里简单说下:
代码:
$html = '<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <style> @font-face { font-family:ttt; src: url(/static/font/simkai.ttf) } body { font-family: ttt, sans-serif; }</style></head> <body > <p style="font-family:ttt;"> 测 测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试</p></body> </p></body> </html>'; //echo $html;exit; $options = new Options(); $options->set('enable_remote', TRUE); $dompdf = new Dompdf($options); $dompdf->load_html( $html, 'UTF-8');; // $dompdf->load_html( $html, ‘GBK‘); $dompdf->render(); $dompdf->stream("sample.pdf", array("Attachment"=>0));exit;
结果:
需要说明:
-
@font-face
{
font-family:ttt;
src: url(/static/font/simkai.ttf)
}这里的ttf是字体,位置放在static/font下,在html里可以直接用font-family:ttt;来引用;
-
就是这个文件dompdflibfontsdompdf_font_family_cache.php
如果迁移代码的时候需要把这个删掉,或者修改family的名称。
推荐学习:《PHP视频教程》