【问题标题】:Snappy Laravel PDF export not loading CSSSnappy Laravel PDF 导出未加载 CSS
【发布时间】:2019-07-19 23:09:20
【问题描述】:

我正在尝试使用 Snappy Laravel 以 PDF 格式导出页面。我有包含所有 CSS 的页面,它运行良好,看起来很棒,但是当我尝试导出它时,我的页面以 pdf 格式下载但没有任何 CSS。这是代码和我已经尝试过的:

控制器:

$pdf = PDF::loadView('admin.userReport');
$pdf->setOption('enable-javascript', true);
$pdf->download('myFileName.pdf');

头:

<link href="{{ asset('/css/app.css') }}" rel="stylesheet"/>

PS:我尝试将绝对路径放到 CSS 文件中,但它也不起作用。

【问题讨论】:

    标签: css laravel laravel-snappy


    【解决方案1】:

    在你的刀片中将其更改为 &lt;link href="{{ asset('/css/app.css') }}" rel="stylesheet"/&gt;

    &lt;link href="{{ public_path('css/pdf.css') }}" rel="stylesheet" type="text/css" /&gt;

    这解决了我这边的问题。

    【讨论】:

    【解决方案2】:

    我在使用 Docker 的 Lumen(几乎与 Laravel 相同)上遇到了同样的问题。我必须尝试几件事才能让它最终为我工作。

    就我而言,在文件config/snappy.php 中我输入了以下代码:

    'pdf' => [
        'enabled' => true,
        'binary'  => env('WKHTML_PDF_BINARY', '/usr/local/bin/wkhtmltopdf'),
        'timeout' => false,
        'options' => [
            'enable-local-file-access' => true,
            'keep-relative-links' => true,
        ],
        'env'     => [],
    ],
    

    设置enable-local-files-access 变量是正确读取和加载 CSS/JS/IMG 文件的关键。 (wkhtmltopdf docs)

    然后在HTML文件中定义文件(CSS/JS/IMG)的路径,我使用了file:///var/www/html/public/&lt;file-path&gt;的方法(在我的情况下文件在公共文件夹中),例如:

    <link rel="stylesheet" href="file:///var/www/html/public/html/css/icons/app.css" type="text/css"/>
    
    <script src="file:///var/www/html/public/html/js/js_file.js"></script>
    
    <img src="file:///var/www/html/public/html/css/img/icon.png"/>
    

    它对我来说很好用,没有任何问题。您可以定制路线以使其适合您。

    希望它可以帮助您(尽管有这么多年),并帮助另一个不得不与 Snappy 打交道的可怜程序员。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-05
      • 2019-08-08
      • 1970-01-01
      • 2018-07-27
      • 2014-09-29
      • 1970-01-01
      • 1970-01-01
      • 2016-01-23
      相关资源
      最近更新 更多