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

PHP 7.4升级至8.2后FPDF的AddFont方法失效,报文件不存在错误

PHP 8.2升级后FPDF AddFont报错的原因及解决

核心原因

报错提示找不到unisansregular.php,本质是PHP 8.0+对文件路径解析的规则更严格,和PHP 7的相对路径处理逻辑有差异:

  • PHP 7中,include会以当前执行脚本的目录作为相对路径的基准来查找文件;
  • PHP 8中,当FPDF内部执行include时,会以fpdf.php所在的目录为基准,导致你原本的相对路径指向的位置不对,自然找不到字体文件。

解决办法

1. 用绝对路径指定字体文件

直接传入字体文件的绝对路径,彻底规避相对路径解析的问题:

// 假设字体文件和当前编写的脚本在同一目录下
$fontFullPath = __DIR__ . '/unisansregular.php';
$pdf->AddFont('Uni-Sans-Regular','',$fontFullPath);

2. 把字体文件放到FPDF的fonts目录

将unisansregular.php以及配套的字体二进制文件(通常是.z后缀),放到FPDF库自带的fonts文件夹里,之后调用时只需要传字体名:

$pdf->AddFont('Uni-Sans-Regular','');

3. 调整PHP的include_path配置

如果不想移动文件或改路径,可以把字体所在目录添加到PHP的include_path中,让PHP能全局找到这个文件:

// 在脚本开头添加,替换成你的字体文件所在目录
ini_set('include_path', ini_get('include_path') . ':/your/font/directory/path');

内容的提问来源于stack exchange,提问作者Anatole

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:35:03