最近做一个商城项目,遇到了要将动态内容生成PDF的需求,查遍网上,发现网上能找到的可以实现此功能的php第三方包所能参考的文档特别是中文文档特别少,折腾了两天,查阅了一些英文文档,看了网上一些前辈踩过的坑,特意在前人的基础上整理了这篇文章,希望日后有小伙伴遇到同样的需求,能够少踩坑。
安装方法:
thinkphp5.0以及laravel5.0以上可以通过composer安装 在命令行切换到项目根目录,运行以下命令:
composer require mpdf/mpdf
接下来在controller中新建方法:
public function pdf(){ vendor("mpdf.mpdf.src.Mpdf"); $mpdf = new \Mpdf\Mpdf(); $url = 'https://www.anzichen.com.cn'; $strContent = file_get_contents($url); $mpdf->WriteHTML($strContent); $mpdf->Output(); exit;}
此时访问次控制器对应的url,即可输出pdf文件 遇到坑: Q:中文字符无法识别,全部显示为????? A: mpdf7.0版本以上 进入vendor/mpdf/mpdf/src/config/ConfigVariables.php 将如下配置修改为true
``` 'autoScriptToLang' => true, 'autoLangToFont' => true,
```
此时再次访问该地址即可输出中文无乱码pdf
可能遇到的坑
Q:页面图片无法显示 ?
A:将模板文件中图片路径全部改为包含域名的绝对路径 如: "
其它问题欢迎加入QQ群96094083讨论