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

原生PHP使用mPDF转HTML表格为PDF时遇LoggerAwareInterface未找到错误

解决「LoggerAwareInterface Not Found in mPdf」错误的实用方案

嘿,我来帮你搞定这个mPDF的报错问题!这个错误其实很好解决,先给你说说原因,再给你两个适合你情况的方案:

为啥会出现这个错误?

新版的mPDF依赖了PSR-3日志规范里的LoggerAwareInterface接口,如果你只是单独下载了mPDF的源码包,没装它需要的配套依赖文件,PHP就找不到这个接口,自然就报错啦。

方案1:手动补依赖(适合不想碰Composer的情况)

如果你实在不想用Composer,那咱们手动把缺的文件补上就行:

  • 先下载psr/log包的源码,找到里面的LoggerAwareInterface.php文件(一般在src文件夹里)
  • 在你的项目里建个psr/log/src的目录,把这个接口文件放进去
  • 在你的PHP代码开头,先引入这个接口文件,再引入mPDF的类:
    // 先引入缺失的接口
    require_once 'psr/log/src/LoggerAwareInterface.php';
    // 再引入mPDF的核心类
    require_once 'src/Mpdf.php';
    
    // 接下来正常写你的代码
    $mpdf = new \Mpdf\Mpdf();
    $mpdf->WriteHTML($html);
    $mpdf->SetWatermarkText('phpflow.COM');
    $mpdf->Output(); // 可以直接输出PDF,或者传参数保存到文件
    
    要是之后还有类似“找不到XXXInterface”的报错,就去psr/log包里把对应的接口文件也补上就行,核心的就是这个LoggerAwareInterface。

方案2:用Composer一键搞定(推荐,其实没你想的复杂)

虽然你说对Composer不太熟,但它就是个自动帮你下依赖的工具,操作超简单:

  • 先下载Composer的composer.phar文件,放到你的项目根目录里
  • 在项目根目录新建一个composer.json文件,内容就写:
    {
        "require": {
            "mpdf/mpdf": "^8.0"
        }
    }
    
  • 打开命令行,进到你的项目根目录,执行这条命令:
    php composer.phar install
    
  • 等它下载完所有依赖,之后你只需要一行代码就能引入所有需要的类,不用再手动一个个引了:
    require_once 'vendor/autoload.php';
    
    $mpdf = new \Mpdf\Mpdf();
    $mpdf->WriteHTML($html);
    $mpdf->SetWatermarkText('phpflow.COM');
    $mpdf->Output();
    
    这种方法最省心,不会再缺依赖,而且后续mPDF要更新也很方便。

小提示

要是你实在不想折腾依赖,也可以试试下载mPDF 7.x及以前的旧版本,这些版本还没依赖PSR-3,直接引入就能用,不过旧版本可能有安全漏洞,还是更推荐用新版配合依赖安装哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:19:11