在laravel中使用wkhtmltopdf

发布时间 2023-12-21 18:01:54作者: 钻牛角尖儿

在平时的项目中,可能会遇到把报表生成pdf或jpg图片的需求,使用wkhtmltopdf能方便的生成pdf和jpg图片。

1、安装:

  ubunut:sudo apt install wkhtmltopdf (或者下载安装指定版本:https://wkhtmltopdf.org/downloads.html),记住安装的目录,命令名称:wkhtmltoimage和wkhtmltopdf

2、laravel配置:

  1、安装依赖:composer require barryvdh/laravel-snappy

  2、在config/app.php的providers下添加:Barryvdh\Snappy\ServiceProvider::class,

  3、在config/app/php的aliases下添加:'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class 和 'SnappyImage' => Barryvdh\Snappy\Facades\SnappyImage::class,

  4、执行 php artisan vendor:publish ,会在 app/config 生成 snappy.php 配置文件,根据自己的情况完成配置

   5、支持 blade 模板,也支持直接写html代码

    例如:$pdf = PDF::loadView('pdf.report', $data); $pdf->setPaper('b5')->save($full_file); 或 $snappy = App::make('snappy.image'); $snappy->generateFromHtml($html, $file_path);   //$html 是html字符串

3、注意事项:

  1、在生成pdf时,要注意纸张的尺寸设置

  2、如果生成的pdf或图片存在乱码,可以安装这两个字体库(sudo apt-get install ttf-wqy-microhei 和 sudo apt-get install ttf-wqy-zenhei