1.什么是mpdf
mPDF是一个PHP类库,它由UTF-8编码的HTML生成PDF文件。它基于FPDF和HTML2FPDF ,再此基础上添加了许多功能。同时对css支持能力得到了大的提升,支持css样式的引入。
2.安装
通过官方composer下载类库包
直接在项目文件中运行命令来下载
$ composer require mpdf/mpdf
下载完成后在vendor文件夹中回出现mpdf这个文件夹
为了防止生成的文件出现乱码需要修改配置文件,在src下的config中找到configvariables,
将
autoLangToFont
autoScriptToLang
这两项都设置为true
3.使用
首先在控制器中引入mpdf这个类,然后将该类实例化
引入mpdf类
实例化mpdf这个类
$mpdf = new Mpdf\Mpdf([‘utf-8’, ‘A4’, 16, ‘’, 10, 10, 15, 15]);
实例化类传入的参数是一个数组 参数内容分别是[‘编码规则’,‘纸张大小(默认是竖版,可以设置为A4-L变成横板)’,‘纸张国际标准多少开’,‘字体’,‘左边距’,‘右边距’,‘上边距’,‘下边距’,]
页脚页码设置
$footer = '
<table class="footer"><tr>
<td width="65%"></td>
<td width="35%">第 {PAGENO} 页</td>'.'</tr>
</table>
'
首先设置页码,然后再通过
footer); 将页码设置到生成的文件上
css外联样式的引入
通过外联将样式引入,然后将模型设置成1,表名这是样式,不需要输出,下图是模型数值代表的含义。
输出pdf文件(必须写exit结束,否则会出现下载正常,预览全部乱码问题)
其中I 是预览 D是下载 F 生成后保存到服务器 S 返回字符串,此模式下$filename会被忽视
水印设置
//文字水印
$mpdf->SetWatermarkText(‘xxx’,0.5);//参数一是文字,参数二是透明度
$mpdf->showWatermarkText = true;
$mpdf->SetWatermarkImage(图片路径,0.5);//参数一是图片的位置,参数二是透明度
$mpdf->showWatermarkImage = true;
封面设置
$header =
'<pagefooter name="myFooter" content-right="{PAGENO}" '
. 'footer-style="font-family:sans-serif; font-size:8pt; font-weight:normal; color:#880000;"'
. ' footer-style-left="" line="on" />'.
//封面内容
'
<br><br><br><br><br><br><br><br>
<h1 align="center" style="font-size: 50pt;font-family:serif;font-weight: bold">检 验 报 告 </h1>
<br><br><br><h2 align="right">No:132456</h2>
<br><br>
<h1 align="center">样品名称:</h1><br>
<h1 align="center">样品规格或等级:</h1><br>
<h1 align="center">委托单位:</h1><br>
<h1 align="center">委托类别:</h1><br>
<br><br><br><br><br><br><br><br><br><br><br>
<h2 align="center">中国日用化学工业研究院分析检测中心</h2><br>
<h2 align="center">国家洗涤用品质量监督检验中心(太原)</h2><br>
<h2 align="center">'.date("Y-m-d")
//关键代码,关联上面的<pageheader>代码,使页眉,页脚和目录生成,具体的功能,其实看字段也能猜测出,或者尝试该值看效果。这里奇偶也的页眉页脚相同,根据需求可以设置为不同的格式。
.'<br><br><br><br>';
内容设置
$content = ‘直接放需要生成的页面’
然后拼接 $html =
content;
输出
html);
$mpdf->Output(‘委托书.pdf’,“I”);
exit;