【问题标题】:Laravel domPDF cant load external css filesLaravel domPDF 无法加载外部 css 文件
【发布时间】:2020-07-12 17:12:33
【问题描述】:

我正在使用 domPDF 在用户提交按钮后生成 PDF。我注意到如果我使用

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

它不会生成 PDF,它总是永远加载。我尝试使用file_get_contents,但似乎它也不起作用。有人可以告诉我该怎么做吗?如果你知道。

控制器

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

        //I can get the image by using this code
        $path = 'health/img/logo.png';
        $type = pathinfo($path, PATHINFO_EXTENSION);
        $data = file_get_contents($path);
        $base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);

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

刀片

 <link rel="stylesheet" href="{{$css_data}}">
 <img src="{{$base64}}" class="img img-fluid img-center">

【问题讨论】:

  • 你找到解决办法了吗?

标签: php css laravel pdf pdf-generation


【解决方案1】:

DomPDF 要求在链接元素的 href 属性中使用 CSS 文件的绝对本地路径,而不是文件的外部 URL。

您可能希望使用类似于以下内容的内容:

<link rel="stylesheet" href="{{ public_path('health/css/bootstrap.min.css') }}">

这对于您希望使用的任何外部资源(CSS、图像等)都是一样的

您可以从他们的 GitHub wiki 找到有关此 here 的更多信息。

如果您直接使用 DomPDF,您还可以设置 DomPDF 加载的基本路径,有关此问题的另一个答案,请参阅 here

【讨论】:

  • 试过了,它不会为我生成pdf。它只会永远加载下去。
  • css 在 html 文件中时相同。预览没问题,但结果 pdf 与预览不一样。它似乎不适用于某些 CSS 属性。例如,宽度 % 有效,但其他效果不佳
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-15
  • 1970-01-01
  • 1970-01-01
  • 2018-09-16
  • 1970-01-01
相关资源
最近更新 更多