使用laravel-snappy扩展包导出PDF及相关问题

Uiaoin 2019-04-30 4269

1、安装Wkhtmltopdf

  1. #32位
  2. composer require h4cc/wkhtmltopdf-i386 0.12.x
  3. #64位
  4. composer require h4cc/wkhtmltopdf-amd64 0.12.x
  5. cp vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 /usr/local/bin/wkhtmltopdf
  6. #并使其可执行
  7. chmod +x /usr/local/bin/wkhtmltopdf


2、安装laravel-snappy扩展包

  1. composer require barryvdh/laravel-snappy


3、配置laravel-snappy扩展包

  1. #将ServiceProvider添加到config/app.php中的providers数组中
  2. Barryvdh\Snappy\ServiceProvider::class, #将ServiceProvider添加到config/app.php中的aliases数组中
  3. 'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class,


4、生成配置文件

  1. php artisan vendor:publish --provider="Barryvdh\Snappy\ServiceProvider"


5、使用

  1. //下载
  2. $pdf = \PDF::loadView('welcome', $data); //$data是view文件中的参数[]
  3. return $pdf->download('welcome.pdf');
  4. //渲染页面
  5. $html = '<html><head><meta charset="utf-8"></head><h1>订单id</h1><h2>12346546</h2></html>';
  6. $pdf = \PDF::loadHTML($html); return $pdf->inline();


6、解决报错:wkhtmltopdf: error while loading shared libraries:

  1. yum install libXrender*


7、解决导出PDF文字乱码

将字体文件加入到/usr/share/fonts/下


至此,完美导出!

参考文章:https://segmentfault.com/a/1190000010652491

加载更多