Генерация PDF с использованием domPDF не генерирует правильно - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть функция, которая создает файл 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

Затем, когда я комментирую функцию возврата и перехожу на электронную почту, то, что я получаю, выглядит так https://imgur.com/a/mziXxxQ

Я не знаю, что происходит. Пожалуйста, помогите, если у вас есть идея. Спасибо ..

1 Ответ

0 голосов
/ 03 апреля 2020

Я понял, что в пакете много ошибок. Я попытался использовать wkhtmltopdf, который предназначен для php, и я увидел упаковку для laravel, и я нашел его на github, который laravel-snappy. Я получил хорошие результаты, и мой ответ был решен.

Он имеет ту же структуру кода, что и dompdf, но вы должны загрузить инструмент wkhtmltopdf и сохранить его на своем компьютере, чтобы работать.

...