最开始可以先将你想要的pdf模板写好先,如testPage

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{{$data[['title']}}</title>
<style type="text/css"> * {
font-family: 'Arial', sans-serif;
}
ul li{
list-style:none;
float:left;
}
div li{
list-style:none;
margin-left:50px
}
table {
border:1px solid black;
}
table th{
border:1px solid black;
}
table td{
border:1px solid black;
word-wrap: break-word;
word-break: break-all;
}
.header{
width:100%;
height:800px;
text-align:center
}
</style> </head> <body> <div class="header">
<div style="text-align:center">
</div>
<table style="width:100%;" cellspacing="0">
<tr>
<th colspan="5"><h1>{{$data['testPager']['exam_page']['title']}}</h1></th>
</tr>
<tr>
<th colspan="3" style="text-align:left"><h3>Shop: {{$data['testPager']['pagerable']['name']}}</h3></th>
<th colspan="2"><h3>Total Score</h3></th>
</tr>
<tr>
<!-- <th>No</th> -->
<th colspan="3" style="text-align:left"><h3>Date</h3></th>
<th colspan="2" style="font-color:red"><font color="red">{{$data['score']}}</font></th>
</tr>
<tr>
<th>No</th>
<th>Category</th>
<th>Details</th>
<th>Point</th>
<th>Score</th>
</tr>
@foreach($data['page_content'] as $key=>$value)
<tr>
<td>{{$key+1}}</td>
<td>{{$value['title']}}</td>
<td style="text-align:left">{{$value['description']}}</td>
<td>{{$value['point']}}</td>
<td><font color="red">{{$value['score']}}</font></td>
</tr>
@endforeach
</table>
</div>
</div> </body>
<script language="JavaScript" type="text/javascript">
</script>
</html>

1.后端控制器获取数据,分派队列任务,将获取的数据传到队列中去

$user = User::all()->toArray();

dispatch(new TestPdf($user));  //TestPdf()为创建的队列
2.TestPdf()队列中生成pdf数据

$pdf = PDF::loadView('pdfTemplate.testPage',compact('data'))->setPaper('a4'); //pdfTemplate.testPage为views目录下的视图文件,compact('data')是传到pdf中的数据,
setPaper('a4')设置pdf的大小
//将pdf发送到1093684305@qq.com的邮箱
Mail::to('1093684305@qq.com')->send(new ReportPage($pdf,$user));
3.创建Mail类
php artisan make:mail ReportPage    //在根目录下的app下的Mail目录生成ReportPage.php文件
class ReportPage extends Mailable
{
use Queueable, SerializesModels;
// protected $data;
protected $pdf; //传递过来的pdf原数据
protected $data; //pdf的变量数据
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($pdf,$data)
{
$this->data = $data;
$this->pdf = $pdf;
} /**
* Build the message.
*
* @return $this
*/
public function build()
{
    //发送邮件视图testPage时,data数据也要传到视图中去,output()是pdf原数据,testPage.pdf发送到邮箱的pdf文件名字
return $this->view('pdfTemplate.testPage',['data'=>$this->data])
->subject('testPage') //邮件主题,即收到邮件时邮件的名字
->attachData($this->pdf->output(), 'testPage.pdf', [
'mime' => 'application/pdf'
]);
}
}

最新文章

  1. ASP.NET Web Api
  2. FormatFloat 格式化浮点数
  3. [原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等
  4. protocolbuffe
  5. Win+R运行自定义程序应该这样玩
  6. CentOS 7 安装无线驱动
  7. 利用d3.js绘制中国地图
  8. TComponent明明实现了IDispatch接口,但是却不加上声明,难道是因为FVCLComObject实体对象不存在?
  9. ICT工作的思考&amp;lt;两&amp;gt;
  10. 深入Java虚拟机:JVM中的Stack和Heap
  11. NOI 2002 贪吃的九头龙
  12. JavaScript之获取表格目标数据(TableDom.getTableData())
  13. python 随机模块常用命令
  14. Excelbatis-一个将excel文件读入成实体列表、将实体列表解析成excel文件的ORM框架,简洁易于配置、可扩展性好
  15. 《Software Design中文版01》
  16. bzoj2458 最小三角形
  17. springboot-25-springboot 集成 ActiveMq
  18. Socket实现服务器与客户端的交互
  19. SQL 语句及关键字的用法
  20. 面试题: 已知一个含有n个不同元素的集合,要求打印其所有具有k个元素的子集(不允许有重复的)

热门文章

  1. SpringXMl文件不提示的解决方法
  2. Pintech品致—示波器探头技术标准倡导者
  3. zabbix 邮件报警和微信报警
  4. 4.深入k8s:容器持久化存储
  5. GitHub 热点速览 Vol.31:在?跑个 GitHub 评分如何?
  6. Java日志框架(二)
  7. 3、Template Method 模板方法 行为型设计模式
  8. Java异常机制,自定义异常以及spring boot异常设计方案
  9. Tutte 定理与 Tutte–Berge 公式
  10. github渗透测试工具库[转载]