Windows和CentOS7安装wkhtmltopdf

Windows和CentOS7使用wkhtmltopdf

查找测试、总耗时一天时间。其中有许多问题现在看来都不是事

1.windows上使用wkhtmltopdf

wkhtmltopdf.org/downloads.html 上下载win版的安装程序,安装完毕后记录下这两个文件的本地地址

windows和centos 7使用wkhtmltopdf
地址分别为:

D:\app\wkhtmltopdf\bin\wkhtmltopdf
D:\app\wkhtmltopdf\bin\wkhtmltoimage

将地址配置在.env文件中即可。

2.在CentOS 7上安装wkhtmltopdf

在CentOs上安装是最花费我时间的。

建议在官网上下载(rpm格式)然后上传至服务器,(期间试过多种方式,这种是一次性成功的)然后执行:

rpm -Uvh wkhtmltox-0.12.6-1.centos8.x86_64.rpm

安装完成后,查找一下安装路径(一般为/usr/local/bin)

whereis wkhtmltopdf

然后执行命令:

sudo chmod +x /usr/local/bin/wkhtmltopdf

至此,安装完毕。(相关配置和常见问题在后面)

3.配合barryvdh/laravel-snappy使用

安装扩展barryvdh/laravel-snappy

composer require barryvdh/laravel-snappy

安装完成后发布配置文件

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

(附)可以在app.php文件中的providers添加

Barryvdh\Snappy\ServiceProvider::class,

在facades添加

'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class,
'SnappyImage' => Barryvdh\Snappy\Facades\SnappyImage::class,

在配置文件中:

windows和centos 7安装wkhtmltopdf

在pdf->binary对应的地方写上执行文件的路径(记得加双引号,也可以在.env文件中配置,此时不需要加引号)

使用方式如下:

$html='...';//html代码
return SnappyImage::loadHtml($html)->stream('demo.jpg');

此时浏览器上会显示一张图片,内容为HTML所展示的内容。(转pdf也是一样)

  • 问题一:服务器上中文乱码

    在c:\windows\fonts中搜索宋体,不要搜索simsun不一定能搜出来,将字体文件上传至服务器/user/share/fonts文件中

  • 问题二:在windows上执行时显示中文乱码

    在SnappyImage::loadHtml($html)后面加上setOption(‘encoding’, ‘utf-8’);

  • 问题三:部分人使用其他方式安装wkhtmltopdf时,在测试 wkhtmltopdf www.baidu.com test.pdf 时执行出错。

    更新wkhtmltopdf文件,或者使用上述方法进行安装

  • 问题四:图片宽度不对

    执行 wkhtmltoimage -h 查看帮助文件,内容如下
    windows和centos 7安装wkhtmltopdf
    查看扩展包文件中有方法如下:
    windows和centos 7安装wkhtmltopdf
    所以可以这样写

    $html='...';//html代码
    $options=[
       'crop-w'=>600,
       'encoding'=>'utf-8'
    ];
    return SnappyImage::loadHtml($html)->setOptions($options)->stream('demo.jpg');

    (ps:crop-w是int类型,不要加单位px之类的,同时width也不需要加,这都是教训)

如果还有什么问题可以提出来,大家一起谈谈。

本作品采用《CC 协议》,转载必须注明作者和本文链接
我爱大可乐
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!