如何在PHP的FPDF中添加Calibri字体?解决Undefined font报错
解决FPDF中Calibri字体未定义的错误
FPDF默认不包含Calibri字体,直接调用SetFont('Calibri','',9)会报错,必须先手动添加并注册字体,步骤如下:
- 导出Calibri字体文件:从Windows系统
C:\Windows\Fonts目录找到Calibri,右键复制对应的.ttf文件(如常规样式的calibri.ttf、粗体的calibrib.ttf等),粘贴到项目的字体存放目录(比如新建fonts/文件夹)。 - 生成FPDF兼容的字体定义文件:
- 找到FPDF安装包中的
tools/makefont.php工具 - 将.ttf字体文件放到
tools/目录下 - 执行命令行指令:
php makefont.php calibri.ttf cp1252(cp1252为编码格式,若需支持中文可替换为utf-8) - 执行完成后会生成
calibri.php和calibri.z两个文件
- 找到FPDF安装包中的
- 移动字体文件:将生成的
calibri.php和calibri.z移到FPDF的font/目录下,或者自定义的字体目录(需在初始化FPDF时指定)。 - 在代码中注册并使用字体:
$pdf = new FPDF(); // 注册Calibri常规字体 $pdf->AddFont('Calibri', '', 'calibri.php'); // 设置字体 $pdf->SetFont('Calibri','',9);
注意事项:
- 字体名称大小写必须完全一致,
AddFont和SetFont中的字体名要统一(比如都用Calibri或全小写calibri) - 若需使用粗体、斜体等样式,需单独生成对应字体的定义文件,再通过
AddFont注册,例如:$pdf->AddFont('Calibri', 'B', 'calibrib.php'); $pdf->SetFont('Calibri','B',9); // 使用粗体样式
内容的提问来源于stack exchange,提问作者Sakshi Ahire
相关产品推荐
相关产品推荐

