为了账号安全,请及时绑定邮箱和手机立即绑定

试图从命名空间“Mpdf”加载类“Mpdf”

试图从命名空间“Mpdf”加载类“Mpdf”

PHP
慕丝7291255 2023-04-21 14:55:33
我正在使用 PHPSpreadsheet 创建 Excel。我想生成 Excel 文件,然后将 Excel 文件转换为 PDF 文件。所以我做了以下事情:use PhpOffice\PhpSpreadsheet\IOFactory;use PhpOffice\PhpSpreadsheet\Reader\Xlsx;use PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf;use PhpOffice\PhpSpreadsheet\Reader\Exception;class DevisGenerator{public function runDevis()    {       $spreadsheet = $this->loadexcelTemplate();       $uuid = $this->uniqidReal();       $filename = $this->writeName($spreadsheet, $uuid);       $this->convertPdf($spreadsheet, $filename);    }    public function writeName($spreadsheet, $uuid)    {        $worksheet = $spreadsheet->getActiveSheet();        $worksheet->getCell('B2')->setValue('Toto');        try {            $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');            $filename = $uuid;            $writer->save($filename.'.xlsx');        }catch (Exception $e)        {            //TODO gestion erreur        }        return $filename;    }public function convertPdf($spreadsheet, $filename)    {        $writer = new \PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf($spreadsheet);        $writer->save($filename.'.pdf');    }但是当我运行代码时出现以下错误:试图从命名空间“Mpdf”加载类“Mpdf”。您是否忘记了“PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf”的“使用”语句?我不明白这个错误,我已经在我的代码中正确插入了 use 语句。任何想法 ?
查看完整描述

3 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

我已经遇到与 Mpdf 类似的问题。

PHPSpreadsheet 支持多个库生成 PDF。

我不喜欢使用 Mpdf,但使用 Tcpdf。我也不确定,但您需要手动安装它们。

作曲家需要 tecnickcom/tcpdf

然后在你的代码中:

$writer = new Tcpdf($spreadsheet);

并且不要忘记使用声明;)

希望这有帮助!


查看完整回答
反对 回复 2023-04-21
?
函数式编程

TA贡献1807条经验 获得超9个赞

由于您在创建实例时使用了完全限定的命名空间,因此不会考虑使用语句(因此会出现错误消息)。

看起来您在创建实例时在命名空间的开头添加了补充斜杠Mpdf,删除它会解决您的问题。

$writer = new PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf($spreadsheet);

但是既然你已经添加了一条use语句,你就不需要再次使用完全限定的命名空间,你可以这样做

$writer = new Mpdf($spreadsheet);


查看完整回答
反对 回复 2023-04-21
?
慕沐林林

TA贡献2016条经验 获得超9个赞

在课前使用语句后,你应该只使用:


public function convertPdf($spreadsheet, $filename)

{

    $writer = new Mpdf($spreadsheet);

    $writer->save($filename.'.pdf');

}


查看完整回答
反对 回复 2023-04-21
  • 3 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信