为什么生成的 pdf 不是 CSS 样式?

Why the generated pdf doesn't is not CSS styled?

我有这样的看法 welcome.blade.php:

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <title>Blog</title>

    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    <link href="{{ asset('css/app.css') }}" rel="stylesheet" media="print">
    <link href="{{ asset('css/example.css') }}" rel="stylesheet" media="print">
    <link rel="preconnect" href="https://fonts.gstatic.com">
</head>

<body class="font-sans antialiased w-full">

....

我正在使用 tailwindcss,此页面的响应式布局包含多种颜色、svg 等。它工作正常,但我正在尝试使用 barryvdh/laravel-dompdf 生成此页面的 pdf。但是pdf下载下来没有任何样式,没有颜色,有衬线字体,排版也很乱。

pdf 功能的路由:

Route::get('/', [PDFController::class, 'generatePDF']);

PDF 控制器:

use Illuminate\Http\Request;
use PDF;

class PDFController extends Controller
{
    public function generatePDF()
    {
        $data = [
          'title' => 'PDF Title',
          'author' => 'Author'
        ];

        $pdf = PDF::loadView('welcome', $data);
        return $pdf->download('test.pdf');
    }
}

你知道问题出在哪里吗?

样式和视图不会自动继承,domPdf 需要提供特定视图和css才能正常工作。

看这里:

How to include the external style sheet in dom pdf

这是关于如何实现这一目标的非常详细的指南:

https://www.positronx.io/laravel-pdf-tutorial-generate-pdf-with-dompdf-in-laravel/