如何解决CodeIgniter框架下Dompdf中文显示乱码并嵌入字体?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1040个文字,预计阅读时间需要5分钟。
链接文本
确认 Dompdf 字体目录路径和权限
CodeIgniter 项目里 Dompdf 的 lib/fonts/ 目录必须可读可写,否则 .ufm 字体度量文件无法自动生成,后续所有字体配置都会静默失败。
- 检查实际路径是否为
application/third_party/dompdf/lib/fonts/(常见于手动集成)或vendor/dompdf/dompdf/lib/fonts/(Composer 安装) - 把中文字体 TTF 文件(如
simhei.ttf或SourceHanSansSC-Regular.otf)直接丢进该目录 - 执行一次
chmod -R 755 lib/fonts/(Linux/macOS)或确保 Windows 下 IIS/Apache 用户有读取+写入权限 - 别跳过验证:生成 PDF 后去
lib/fonts/看有没有对应名称的.ufm文件(例如simhei.ufm),没有就说明字体没被识别
在 CodeIgniter 中正确初始化 Dompdf 并设置 defaultFont
很多乱码问题出在 CodeIgniter 的 autoloader 和 Dompdf 初始化时机上——defaultFont 必须在 new Dompdf() 前设好,且不能依赖全局配置文件。
本文共计1040个文字,预计阅读时间需要5分钟。
链接文本
确认 Dompdf 字体目录路径和权限
CodeIgniter 项目里 Dompdf 的 lib/fonts/ 目录必须可读可写,否则 .ufm 字体度量文件无法自动生成,后续所有字体配置都会静默失败。
- 检查实际路径是否为
application/third_party/dompdf/lib/fonts/(常见于手动集成)或vendor/dompdf/dompdf/lib/fonts/(Composer 安装) - 把中文字体 TTF 文件(如
simhei.ttf或SourceHanSansSC-Regular.otf)直接丢进该目录 - 执行一次
chmod -R 755 lib/fonts/(Linux/macOS)或确保 Windows 下 IIS/Apache 用户有读取+写入权限 - 别跳过验证:生成 PDF 后去
lib/fonts/看有没有对应名称的.ufm文件(例如simhei.ufm),没有就说明字体没被识别
在 CodeIgniter 中正确初始化 Dompdf 并设置 defaultFont
很多乱码问题出在 CodeIgniter 的 autoloader 和 Dompdf 初始化时机上——defaultFont 必须在 new Dompdf() 前设好,且不能依赖全局配置文件。

