调用未定义的方法 Dompdf\FrameDecorator\Page::add_line()

问题描述 投票:0回答:1

我正在尝试发送一封带有 2 个 pdf 附件的电子邮件,但是当在控制器中调用 getRejectedReport 方法时,它返回错误,指出 Call to undefined method Dompdf\FrameDecorator\Page::add_line() 而另一个方法 getReport 成功运行并生成pdf 作为附件包含在电子邮件中。

得到这个

Call to undefined method Dompdf\\FrameDecorator\\Page::add_line()

对于两个 pdf Blade 文件,我有几乎相同的代码和相同的逻辑。这是我的示例代码....

class ChecklistController extends AppBaseController
{
    protected $pdf;

    public function __construct(
        ComplaintRepository $compRepository,
        PDf $pdf,
    ) {
        $this->compRepository = $compRepository;
        $this->pdf = $pdf;
    }

    public function getReport($id, $type = 'stream')
    {
        $view = 'pdf.report';
        $filePath =  app()->basePath() . '/public/uploads/pdf';

        $pdf = $this->pdf->loadView($view, [
            'content' => $data, 
        ])->setPaper('a4');

        $pdf->setWarnings(false)->save($filePath);
    }

    public function getRejectedReport($id, $type = 'stream')
    {
        $view = 'pdf.rejected-report';
        $filePath =  app()->basePath() . '/public/uploads/pdf';

        $pdf = $this->pdf->loadView($view, [
            'content' => $data, 
        ])->setPaper('a4');

        $pdf->setWarnings(false)->save($filePath);
    }

}
php laravel pdf dompdf
1个回答
0
投票

这是当您为下一代 pdf 使用相同的 $pdf 实例时出现的常见问题。

所以最好使用新的 PDF 实例更改您的方法,请参阅以下代码

创建一个新的 PDF 实例,如 **$pdf = app(PDF::class); **

public function getRejectedReport($id, $type = 'stream')
{
    $view = 'pdf.rejected-report';
    $filePath =  app()->basePath() . '/public/uploads/pdf';

     // Make a fresh instance of pdf here
    $pdf = app(PDF::class)->loadView($view, [
        'content' => $data, 
    ])->setPaper('a4');

    $pdf->setWarnings(false)->save($filePath);
}
© www.soinside.com 2019 - 2024. All rights reserved.