在 Laravel 中创建 PDF 时使用 HTML

Using HTML when creating a PDF in Laravel

我正在使用 Laravel 创建一个网站,该网站具有允许您从您正在查看的页面(即培训课程)下载包含详细信息的 PDF。

我使用barryvdh/laravel-dompdf包。

控制器

$data["overview"] = $course[0]['overview__c'];

$pdf = PDF::loadView('pdf.course', $data);

$data 数组被传递到 'pdf.course' blade 文件中,其中的值包含 HTML code/tags.

浏览量 > pdf > course.blade.php

<img src="{{asset('images/pdf-logo.fw.png')}}" style="margin-bottom: 25px;">

{{ $overview__c }}

当 PDF 为 created/downloaded 时,其中的数据不会呈现 HTML 代码,而是仅显示标签,使 PDF 完全未格式化。

似乎任何 HTML 代码都必须是 blade 文件的一部分,不能来自传递给它的 $data。

有没有人有任何解决方案或解决方法供我尝试?

控制器

$data["overview"] = $course[0]['overview__c'];

$pdf = PDF::loadView('pdf.course', $data);

Blade.php

{{$data}}

和图像

<img src="{{asset('images/pdf-logo.fw.png')}}" style="margin-bottom: 25px;">

{{!! $overview__c !!}}

使用{!! !!}显示未转义的数据

{!! $overview !!}

你可以找到文档 here

    Bro by this u can render your html in pdf

在您的控制器中:

    $data["overview"] = $course[0]['overview__c'];
    $html = view('vendor.tcsprint', compact('data'))->render();
    $pdf->loadHTML($html);
    return $pdf->download('Order-'.$tcs['invoice_no'].'.pdf');

你可以通过多种方式做到这一点

1. {!!html_entity_decode($overview)!!}

2. {!! $overview !!}

3. {!! nl2br($overview) !!}