使用FPDF在PDF中添加表情符号失败,寻求解决方案
解决FPDF添加Emoji表情失效的问题
确认字体文件路径与格式
不要直接把NotoEmoji-Regular.ttf丢进font目录就完事,FPDF需要专属的字体文件格式。用FPDF自带的makefont.php工具转换:- 找到FPDF包中的
makefont.php - 执行命令生成适配文件:
php makefont.php NotoEmoji-Regular.ttf utf-8 - 把生成的
NotoEmoji.php和NotoEmoji.z文件放到FPDF的font目录下
- 找到FPDF包中的
修正代码中的错误
原代码的MultiCell参数和字符引用方式有问题,调整后代码如下:// 加载转换后的字体文件 $pdf->AddFont('NotoEmoji', '', 'NotoEmoji.php'); // 设置字体大小(放大更易查看Emoji) $pdf->SetFont('NotoEmoji', '', 20); // 使用Unicode转义序列插入Emoji,避免编码问题 $pdf->MultiCell(0, 15, "\u{2764}", 0, 'L'); // 爱心表情 $pdf->MultiCell(0, 15, "\u{1F60A}", 0, 'L'); // 笑脸表情 $pdf->MultiCell(0, 15, "\u{1F381}", 0, 'L'); // 礼物表情说明:
MultiCell第一个参数设为0表示自动适配页面宽度,第二个参数是行高,设15能避免Emoji被截断。排查其他问题
- 确保
NotoEmoji-Regular.ttf是完整有效的字体文件,建议从官方渠道下载 - 升级FPDF到最新版本,旧版本对Unicode Emoji的支持不足
- 确保
内容的提问来源于stack exchange,提问作者mzarSara
相关产品推荐
相关产品推荐

