php dompdf中文乱码怎么办
时间 : 2023-02-13 14:24:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
php dompdf中文乱码就像困扰我们的梦魇,它每次出现都让我们很沮丧,让我们不知道该怎么办,去哪里找原因。下面就给大家介绍几种解决php dompdf中文乱码的方法:
**方法一:** 推荐使用 Dejavu 中文字体,Dejavu 字体已经在 dompdf 中默认集成了,只需要在代码里添加
`$dompdf->set_option('defaultFont', 'Dejavu Sans')`
这一句代码即可完成字体选择;
**方法二:** 将 dompdf 源码文件夹里面的 Tools 下的***字库,也就是 cmap 目录上传到你所使用的网站根目录下,在代码里添加
`$dompdf->set_option("enable_font_subsetting",true);`
可以解决乱码问题;
**方法三:** 如果你电脑上安装了某些中文字体,可以将这些字体文件放在你的网站的根目录的 Fonts 目录下,在代码中加上这一句
`$dompdf->set_option("defaultFont", "你的中文字体名称");`
即可完成设置,以上这三种方法中的任何一种都有可能可以解决你的乱码问题,如果你的乱码问题依然没有得到解决,那可能你的网页是因为输出到 PDF 里去的时候进行了编码转换,你需要检查一下你的网站代码,如果发现有 UTF-8-->GBK 的转换,这样domPDF按照GBK去渲染PDF文件,当然是会乱码的,只需要将代码改成GBK-->UTF,即可解决乱码的问题!
PHP DOMPDF中文乱码的问题一直困扰着许多php开发者们。各种诸如中文、英文混排的pdf文件都极易出现乱码的情况,使用不当的字体文件也容易导致中文乱码。
其实,documentation文档中也提到了解决方法,但是有些用户在使用时仍旧有不能正确显示中文的情况,有可能是这必须使用fc-list指令示例查看所有字体文件去获得实际字体文件路径才能拥有完整的字库来显示中文,
fclist指令大概有如下格式:
sudo fc-list :lang=zh
要显示所有字体列表,得到字体文件的实际路径。获得字体文件实际路径后,只需要在要渲染的dompdf文档对象中加入如下一行设定body内容或者html中的内容就可以了:
$dompdf->set_option('defaultFont', 'FONT_PATH_HEREIFIED_NAME_HERE');
有些字体文件可能不支持,可以使用ttf Font Shedder工具,将字体转换成相应的格式,更容易支持。
DOMPDF能够针对不同的浏览器支持不同的格式的字体,比如FONT_EMAIL、FONT_LANG、FONT_CODE等,想要使用就要补充相关的字体,且字体必须符合format,并注意有些字体容量较大中文显示尤为困难,因此要注意有没有可替代的精简版字体以节省容量。
最后,建议开发者们在使用DOMPDF愿PDF文件中正常显示中文时,一定要采用正确的字体文件,使用fc-list命令查看和获取相应的字体文件,用ttf font shedder工具将字体转换格式,并补充相关字体满足PDF显示中文需求,如果字
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章