2021-11-26 本文参考自博客-Linux 之 HTML 页面转图片软件:wkhtmltox
在linux环境下用wkhtmltox工具,可以把html页面转换为图片。
安装wkhtmltox工具
在官方主页wkhtmltopdf.org,安装系统下载对应的安装包。
我的系统是centos,x86_64系统,
cd /home/sft
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
rpm -ivh wkhtmltox-0.12.5-1.centos7.x86_64.rpm
如果安装过程中报错,缺少libX11之类的库,就yum search、yum install 安装,如下
yum -y install libX11
yum -y install xorg-x11-fonts-75dpi.noarch
安装完成后的测试命令
wkhtmltoimage www.baidu.com baidu.jpg
如果测试图片没有中文,则需要安装中文字体,比如下载一个微软雅黑字体,字体安装到目录/usr/share/fonts/
cd /usr/share/fonts/
wget https://dlc2.pconline.com.cn/filedown_50601_6620616/SCbKpBBU/yaheiFont_CHS.zip
unzip yaheiFont_CHS.zip -d msyh
# 字体有了之后,还需要建立字体缓存
mkfontscale
mkfontdir
fc-cache -fv
PHP使用wkhtmltox
PHP需要安装wkhtmltox扩展才能调用wkhtmltox功能,在github里面搜一搜就有。我这里使用的是julego-php7
cd /home/sft
wget https://github.com/mreiferson/php-wkhtmltox/archive/master.zip
wget https://github.com/julego/php-wkhtmltox/archive/julego-php7.zip
mv julego-php7.zip php-wkhtmltox-julego-php7.zip
unzip php-wkhtmltox-julego-php7.zip
cd php-wkhtmltox-julego-php7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
cp modules/phpwkhtmltox.so /usr/local/php/ext/
修改PHP配置 php.ini, 增加一行
extension=phpwkhtmltox.so
重启PHP
systemctl restart php-fpm.service
测试代码,
<?php
wkhtmltox_convert('image', ['in' => 'http://www.baidu.com/', 'out' => 'baidu.jpg']);
wkhtmltox_convert('image', ['in' => '/tmp/a.html', 'out' => 'baidu.jpg']);
?>