使用 domPDF 生成 pdf 无法正确生成

Generate pdf using domPDF does not generating correctly

我有一个功能可以生成 pdf 文件,然后通过电子邮件将其发送给某人。我尝试先使用 return view 调试它,然后当我在网络选项卡中看到它时,它是正确的。但是,当我通过电子邮件发送它时,我会在那里查看 pdf,但未正确应用或呈现 pdf 样式。有人可以告诉我我应该怎么做吗?问题是什么?

这是我的控制器

        $css = 'health/css/bootstrap.min.css';
        $data_type = pathinfo($css, PATHINFO_EXTENSION);
        $css_data = file_get_contents($css);

        $path = 'health/img/logo.png';
        $type = pathinfo($path, PATHINFO_EXTENSION);
        $data = file_get_contents($path);
        $base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);


       //return view('emails.form',compact('base64','css_data')); test


        $pdf = \PDF::loadView('emails.form',compact('base64','css_data'));

        $beautymail = app()->make(\Snowfire\Beautymail\Beautymail::class);
        $beautymail->send('emails.welcome', [], function($message)use($pdf)
        {
            $message
                ->from('testemail@gmail.com','TEST')
                ->to('ronald.b@gmail.com', 'Test')
                ->attachData($pdf->output(), "asdf.pdf")
                ->subject('Welcome!');
        });

当我第一次尝试做的时候

return view('emails.form',compact('base64','css_data'));

我得到的是正确的,像这样 https://imgur.com/a/Dz7ifms

然后当我评论 return 功能并继续发送电子邮件时,我得到的是这样的 https://imgur.com/a/mziXxxQ

我不知道发生了什么。如果您有任何想法,请提供帮助。谢谢..

我发现这个包里面有很多错误。我尝试使用 php 的 wkhtmltopdf,我看到了 laravel 的包装器,我在 github 找到了它,即 laravel-snappy。我得到了很好的结果,我的答案得到了解决。

它与 dompdf 具有相同的代码结构,但您必须下载 wkhtmltopdf 工具并将其保存到您的计算机才能工作。