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

今天就来说说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 安装完成后再次进行测试发现不再报错 

二、安装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 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/里

以上就是我在使用中所遇到的问题,希望能帮助各位朋友与大家一起分享!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值