You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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兼容的字体定义文件:
    1. 找到FPDF安装包中的tools/makefont.php工具
    2. 将.ttf字体文件放到tools/目录下
    3. 执行命令行指令:php makefont.php calibri.ttf cp1252(cp1252为编码格式,若需支持中文可替换为utf-8)
    4. 执行完成后会生成calibri.php和calibri.z两个文件
  • 移动字体文件:将生成的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 13:33:16