laravel 框架下生成 pdf

百度了一下有两个选择,laravel-dompdf 和 laravel-snappy,一个作者写的。

一开始选择的 laravel-dompdf,因为移植相对后者来说简单点,但是遇到汉字乱码问题,试了几个解决方案都没用,又听其他人十分推崇 laravel-snappy,遂改用了后者。

github 地址:https://github.com/barryvdh/laravel-snappy

首先声明下,我只需要生成 pdf,不需要生成图片。

第一步,安装 Wkhtmltopdf

下载 Wkhtmltopdf(https://github.com/KnpLabs/snappy#wkhtmltopdf-binary-as-composer-dependencies),我用 composer 方式:

composer require h4cc/wkhtmltopdf-amd64 0.12.x

整个页面就这句有用对我来说。

第二步,安装 laravel-snappy

回到 laravel-snappy (https://github.com/barryvdh/laravel-snappy)页面,

cp vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 /usr/local/bin/
chmod +x /usr/local/bin/wkhtmltopdf-amd64

为了移植方便我没有用到这两句,如果是多个项目需要转成 pdf 的话可以参考这个方式。

生成配置文件后,有两种方式引用 wkhtmltopdf:

方式一

'binary' => base_path('vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64'), // 我用的这个

方式二

'binary'  => '/usr/local/bin/wkhtmltopdf-amd64', // linux 环境
'binary' => '"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf"' // windows 环境

 

最后是解决中文乱码问题,网上搜一个中文字体库放到 /usr/share/fonts/ (我的服务器是 CentOS7,windows 自己找解决方案 /斜眼笑)即可,我这里下载的 sumsin.ttf (宋体)(https://ufonts.com/download/simsun.html)

 

需要注意的地方就这几点,其他的参考官方教程走就行。

 

参考:https://www.cnblogs.com/weiyalin/p/7765558.html

转载于:https://my.oschina.net/u/2400070/blog/3099815

你可能感兴趣的:(laravel 框架下生成 pdf)