Linux 之 HTML 页面转图片软件:wkhtmltox

编程入门 行业动态 更新时间:2024-10-10 14:26:24

Linux 之 HTML <a href=https://www.elefans.com/category/jswz/34/1771336.html style=页面转图片软件:wkhtmltox"/>

Linux 之 HTML 页面转图片软件:wkhtmltox

▪ 介绍

在桌面操作系统下,手工截取网页的截图非常方便,各种软件插件一应俱全。但是作为一个程序员,有时你也许有这样的需求:服务器端的程序自动对指定的页面进行截图并保存。对于服务器端纯命令模式下如何截图呢?

这里介绍一个非常好用的软件:wkhtmltox(官网 ),它不仅能把 HTML 网页转成图片,也可以转成 PDF。但是这里我们只讲 wkhtmltox 中的下 HTML转图片 功能。

▪ 安装主程序

进入 .html,根据自己的操作系统选择合适的版本并复制链接备用(我们这里选择 CentOS 7 版本)。

进入服务器,开始安装 wkhtmltox
$ cd /usr/local/src/
$ wget .12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm$ yum -y install libX11
$ yum -y install libXext
$ yum -y install fontconfig
$ yum -y install libXrender
$ yum -y install xorg-x11-fonts-Type1
$ yum -y install xorg-x11-fonts-75dpi.noarch$ rpm -ivh wkhtmltox-0.12.5-1.centos7.x86_64.rpm
安装完以后,你就可以直接使用 wkhtmltoimage 命令来接网页图片,例如:
$ wkhtmltoimage www.baidu baidu.jpg

上面的代码直接将 baidu 首页截图并保存到当前目录下,由于服务器纯命令模式下无法直接查看 baidu.jpg,你可以通过 FTP 或其他方式下载到本地后再查看

至此,通过查看 baidu.jpg 你会发现图片里很多地方没有文字,更准确的说是图片里没有中文字体。为了 wkhtmltox 能正常的显示中文,接下来我们就需要安装中文字体。

▪ 安装中文字体

CentOS 下的 wkhtmltox 由于缺少中文字体库,所以对于网页的中文字体就它无法显示并截图。为此我们需要在服务器上安装中文字体。

下载字体:
$ cd /usr/share/fonts/
$ wget .zip
$ unzip yaheiFont_CHS.zip -d msyh
建立字体缓存
$ mkfontscale
$ mkfontdir
$ fc-cache -fv

OK,完成后你再使用 wkhtmltoimage 命令就能截到含有中文字体的图片了。

▪ 安装 PHP 扩展(PHP 7+)

在用 PHP 来开发网站时,如果我们需要使用 wkhtmltox 功能时,我们就需要在 PHP 里面通过终端命令执行函数 exec() 来调用 wkhtmltox 的相关命令来进行截图,这样很不友好而且有很多潜在问题。

好在很多开发者已经想到这些问题,我们可以使用他们的源码让 wkhtmltox 以扩展的形式嵌入 php 中,这样就便于我们的使用。

注:以下的安装库以及一些代码基于 CentOS 7+ 操作系统和 PHP 7+ 版本。

安装 PHP 扩展库:
$ cd /usr/local/src$ wget .zip
$ wget .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 phpwkhtmltox.so /usr/local/php/ext/
编辑 PHP 配置文件,增加扩展:
extension=phpwkhtmltox.so
重启 PHP:
systemctl restart php-fpm.service
PHP 调用 wkhtmltox 代码
<?phpwkhtmltox_convert('image', ['in'=>'/','out'=>'baidu.jpg']);
?>

函数原型:wkhtmltox_convert($type, $globalsetting, $objectsetting)

函数说明:.10.0_doc/pagesettings.html

更多推荐

Linux 之 HTML 页面转图片软件:wkhtmltox

本文发布于:2024-02-13 17:09:55,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1759441.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:页面   图片   软件   Linux   HTML

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!