您的位置:首页 > 移动开发

laravel 使用snappy生成pdf文件或生成图片

2017-04-26 08:58 495 查看
今天就来说说laravel 上如何使用snappy这个扩展包,网上的资料呢,也是不多,laravel框架对于我来说也不熟,入门新手,在使用中也是出错了蛮多的,现在与大家分享一下。

首先我们先去github上下载扩展包 snayyp扩展包https://github.com/barryvdh/laravel-snappy#wkhtmltopdf-installation

因为snappy这个扩展包是需要wkhtmltopdfwkhtmltoimage支持所以我们去下载所依赖的软件,下载地址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.bz2


3、重命名文件夹,移动文件夹

mv wkhtmltopdf-amd64 wkhtmltopdf
mv wkhtmltopdf /usr/local/bin   统一移动到这个目录


 

4、测试是否安装成功

wkhtmltopdf http://www.baidu.com /home/wwwroot/baidu.pdf
可能到测试这一步相信大家可能遇到错误了,不要着急有解决办法



解决办法运行命令yum
install libXrender libXext fontconfig安装完成后再次进行测试发现不再报错 

二、安装[b]wkhtmltoimage[/b]

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 wkhtmltopdf
mv wkhtmltoimage /usr/local/bin/  统一移动到这个目录


 

4、测试是否安装成功

wkhtmltoimage http://www.baidu.com /home/wwwroot/baidu.image

下面说回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/里

以上就是我在使用中所遇到的问题,希望能帮助各位朋友与大家一起分享!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: