今天就来说说laravel 上如何使用snappy这个扩展包,网上的资料呢,也是不多,laravel框架对于我来说也不熟,入门新手,在使用中也是出错了蛮多的,现在与大家分享一下。
首先我们先去github上下载扩展包 snayyp扩展包https://github.com/barryvdh/laravel-snappy#wkhtmltopdf-installation
因为snappy这个扩展包是需要wkhtmltopdf和wkhtmltoimage支持所以我们去下载所依赖的软件,下载地址http://download.gna.org/wkhtmltopdf/obsolete/ 这里有linux和windows系统对应版本的,应该能满足大家的需要。
windows安装wkhtmltopdf/wkhtmltoimage
windows这里可以直接下载安装。 我的安装路径为C:\Program Files\wkhtmltopdf ,供大家参考
linux安装 wkhtmltopdf/wkhtmltoimage
一、安装wkhtmltopdf
1、下载wkhtmltopdf
wget http://download.gna.org/wkhtmltopdf/obsolete/linux/wkhtmltopdf-0.10.0_rc2-static-amd64.tar.bz2 2、解压压缩包tar jxvf wkhtmltopdf-0.10.0_rc2-static-amd64.tar.bz23、重命名文件夹,移动文件夹
mv wkhtmltopdf-amd64 wkhtmltopdf4、测试是否安装成功 wkhtmltopdf http://www.baidu.com /home/wwwroot/baidu.pdf
mv wkhtmltopdf /usr/local/bin 统一移动到这个目录
可能到测试这一步相信大家可能遇到错误了,不要着急有解决办法
解决办法运行命令yum install libXrender libXext fontconfig安装完成后再次进行测试发现不再报错
二、安装wkhtmltoimage
1、下载wkhtmltoimage
wget http://download.gna.org/wkhtmltopdf/obsolete/linux/wkhtmltoimage-0.10.0_rc2-static-amd64.tar.bz2 2、解压压缩包tar jxvf wkhtmltoimage-0.10.0_rc2-static-amd64.tar.bz2
3、重命名文件夹,移动文件夹mv wkhtmltoimage-amd64 wkhtmltopdf4、测试是否安装成功wkhtmltoimage http://www.baidu.com /home/wwwroot/baidu.image
mv wkhtmltoimage /usr/local/bin/ 统一移动到这个目录
下面说回laravel里使用snappy上面做好的准备工作呢还没完,继续我们的snappy扩展包的安装。1.运行命令composer require barryvdh/laravel-snappy进行安装2.找到config/app.php文件
'providers' => [
Barryvdh\Snappy\ServiceProvider::class,
],
'aliases' => [
'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class,
'SnappyImage' => Barryvdh\Snappy\Facades\SnappyImage::class,3.添加以上内容后运行命令php artisan vendor:publish --provider="Barryvdh\Snappy\ServiceProvider"进行安装会在config/snappy.php生成配置文件配置如下:
],
return array(
'pdf' => array(
'enabled' => true,
'binary' => '"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf"',
//这里作为widows系统snappy所安装的依赖软件wkhtmltopdf路径
// 'binary' => '/usr/local/bin/wkhtmltopdf',
//这里作为linux系统所安装的依赖软件wkhtmltopdf路径
'timeout' => false,
'options' => array(),
'env' => array(),
),
'image' => array(
'enabled' => true,
'binary' => '"C:\Program Files\wkhtmltopdf\bin\wkhtmltoimage"',
//这里作为linux系统snappy所安装的依赖软件wkhtmltopdf路径// 'binary' => '/usr/local/bin/wkhtmltoimage',
//这里作为linux系统所安装的依赖软件wkhtmltoimage路径'timeout' => false, 'options' => array(), 'env' => array(), ),);
配置完成后就可以使用我们的snappy了
use PDF;
use SnappyImage;
//html生成pdf文件
$pdf = PDF::loadView('pdf.invoice', $data);
return $pdf->download('invoice.pdf');
//html生成图片
$pdf = SnappyImage::loadView('pdf.invoice', $data);return $pdf->download('invoice.image');
导出的中英文乱码,原因是没有字体
找了windows里的宋体,最好不要用微软雅黑
上传到服务器/usr/share/fonts/里
以上就是我在使用中所遇到的问题,希望能帮助各位朋友与大家一起分享!