Laravel使用laravel-snappy包实现HTML转PDF和PNG的方法

  介绍

这篇文章主要介绍了Laravel使用laravel-snappy包实现HTML转PDF和PNG的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

<强>前言

由于公司要开发一个新的工具叫做云合同,可以预设好几套固定的合同模板(HTML页面),使用参数填充方式将合同内的数据灵活变化,然后生成PDF和PNG
查阅一番我们发现了<代码> laravel-snappy 这个包,底层使用的是<代码> wkhtmltopdf ,<代码> wkhtmltopdf> QT Webkit 之上,而<代码> QT Webkit> 的,跟我们的浏览器一样的渲染引擎。

<强>安装

1,先查看系统是32位的还是64位的

uname -

2,通过作曲家安装wkhtmltopdf

32位:   作曲家美元需要h5cc/wkhtmltopdf-i386 0.12.x   作曲家美元需要h5cc/wkhtmltoimage-i386 0.12.x   64位:   作曲家美元需要h5cc/wkhtmltopdf-amd64 0.12.x   作曲家要求h5cc/wkhtmltoimage-amd64 0.12美元。x

3,接下来将安装好的wkhtmltopdf复制到Linux系统可执行命令的目录中

cp供应商/h5cc wkhtmltoimage-amd64/bin/wkhtmltoimage-amd64/usr/local/bin/cp供应商/h5cc wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64/usr/local/bin///并使其可执行:   chmod + x/usr/local/bin/wkhtmltoimage-amd64   chmod + x/usr/local/bin/wkhtmltopdf-amd64

4,安装laravel-snappy包

作曲家需要barryvdh/laravel-snappy

<强>配置

1,将ServiceProvider添加到配置/应用程序。php中数的供应商组中

Barryvdh \时髦\ ServiceProvider::类,

2,将立面添加到配置/应用程序。php中的别名数组中

& # 39;pdf # 39;=比;Barryvdh \时髦\外墙\ SnappyPdf::类,   & # 39;SnappyImage& # 39;=比;Barryvdh \时髦\外墙\ SnappyImage::类,

3,生成配置文件

php工匠供应商:发布——提供者=癇arryvdh \时髦\ ServiceProvider"

注意:配置文件夹中的时髦。php就是其配置文件、二进制指向的就是上面安装的wkhtml相关路径。

<强>使用

<强> PDF

//一,下载   $ pdf=\ pdf::未经(& # 39;欢迎# 39;元数据);   返回pdf→美元下载(& # 39;welcome.pdf& # 39;);//二,渲染页面,在浏览器中显示   html=$ & # 39; & lt; html> & lt; head> & lt;元charset=皍tf-8"祝辞& lt;/head> & lt; h2>订单id & lt; h3> 12346546 & lt;/h3> & lt;/html> & # 39;;   美元$ pdf=\ pdf:: loadHTML (html);   返回pdf→美元内联();

<强>图片

//一,下载   $ img=\ SnappyImage::未经(& # 39;欢迎# 39;元数据);   返回$ img→下载(& # 39;welcome.png& # 39;);//二,渲染页面,在浏览器中显示   html=$ & # 39; & lt; html> & lt; head> & lt;元charset=皍tf-8"祝辞& lt;/head> & lt; h2>订单id & lt; h3> 12346546 & lt;/h3> & lt;/html> & # 39;;   美元$ img=\ SnappyImage:: loadHTML (html);   返回$ img→内联();

<强>踩坑记录

一,当执行生成时若提示<代码> libXrender 或<代码> libssl> //apt-get安装方法   apt-get安装libXrender *   apt-get安装libssl *//百胜安装方法   yum安装libXrender *   yum安装libssl *//若百胜安装时最后报错错误:GPG检查失败   yum安装libXrender *——nogpgcheck   yum安装libssl *——nogpgcheck

二、中文显示乱码问题,这个问题需要在Linux中安装中文字体即可解决

查看系统字体
在开始安装之前,我们先查看系统中已经安装的字体,要查看系统中已经安装的字体,我们可以使用<代码> fc-list 命令进行查看,如果系统中没有该命令的话,我们需要先安装相关的软件包。
在centos上,使用如下命令进行安装:

yum安装- y fontconfig mkfontscale

安装完毕后,我们可以来查看系统中已经安装的字体

# fc-list root@8d079be5059a php/usr/share/fonts/urw-base35/NimbusMonoPS-Italic。传递:灵气Mono PS:风格=斜体/usr/share/fonts/urw-base35/D050000L.t1: D050000L:风格=定期   …

如果要查看系统中已经安装的中文字体,我们可以使用如下命令

(root@8d079be5059a php) # fc-list: lang=zh型

Laravel使用laravel-snappy包实现HTML转PDF和PNG的方法