laravel6.*实现html转PDF导出下载(barryvdh/laravel-dompdf)

本教程意在解决laravel6以上版本按照laravel-dompdf官方文档无法实现pdf导出成功的问题。

laravel转pdf,laravel实现html转pdf,laravel生成pdf

 

安装

使用composer进行安装

composer require barryvdh/laravel-dompdf

 

配置

config/app.php的providers数组中注册laravel-dompdf的服务提供者

'providers' => [
	....
	Barryvdh\DomPDF\ServiceProvider::class,
],

config/app.php的aliases数组中注册laravel-dompdf的门面

'aliases' => [
	....
	'PDF' => Barryvdh\DomPDF\Facade::class,
],

 

关键配置

这一步的配置是区别于laravel5.*的,所以在laravel6以上版本使用laravel-dompdf的要特别注意

在bootstrap/app.php中添加如下代码进行服务绑定

...
$app->singleton(\Barryvdh\DomPDF\ServiceProvider::class);

return $app;

 

资源发布

使用如下命令发布laravel-dompdf资源,会在config目录下产生一个配置文件如图

php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"

 

使用

注册路由

Route::get('/test_report_download', 'TestController@reportDownload');

在相应控制器方法中实现转换下载

  • loadView方法与laravel的视图渲染方法完全一致,第一个参数为视图模板,第二个参数为传递到视图中的数据
  • 视图模板中尽量不要使用flex进行布局,否则页面效果可能会没那么好
  • 推荐使用table布局,这样下载下来的报告更加美观,样式直接使用css进行控制就好
<?php
use PDF;
class TestController{
    public function reportDownload () {
        $testReport = ["one"=>1, "two"=>2];
        $pdf = PDF::loadView("fs.test_pdf_report", ["data"=>$testReport]);
        return $pdf->download("测试报告".date("YmdHis").".pdf");
    }
}

视图模板resources/fs/test_pdf_report.blade.php

<h3>测试报告</h3>
<table>
    <tr>
        <td>{{$data['one']}}</td>
        <td>{{$data['two']}}</td>
    </tr>
</table>

 

中文乱码解决方案

 

参考

项目地址:https://github.com/barryvdh/laravel-dompdf

6.0参考地址:https://hackthestuff.com/article/laravel-6-how-to-generate-html-to-pdf-with-laravel-dompdf

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值