html2image是一个运行在Linux/Unix平台上将网页转化为图片的工具,它能将网页转化为bmp、png和jpg等格式的图片。通常,html2image需要运行在一个X server上,不过我们也可以不安装一个真的X11 server,使用Xvfb来替代X server运行html2image。这样做可以使我们在服务器上更快的将html页面转化为image。
html2image的安装及使用方法:
1、 解压包文件到服务上的某个目录下。(例如/usr/local/html2image/);
2、 将html2image的文件路径加到shared library的ld路径中。例如:
export LD_LIBRARY_PATH=/usr/local/html2image/
或者你可以将这个路径加到/etc/ld.so.conf,然后运行ldconfig
3、 在X server上运行html2image将html转化为image
a、 转化为bmp格式
html2image www.google.com a.bmp (a.bmp就在运行该命令的目录下)
b、 转化为jpg格式
html2image www.google.com a.jpg (a.jpg就在运行该命令的目录下)
c、将本地html文件转换为png格式
html2image file://home/user/test.html a.png (a.png就在运行该命令的目录下)
4、 使用Xvfb在文本模式下运行html2image。在html2image目录下,运行下面的命令:
a、./Xvfb :1 -screen 0 640x480x24 -nolisten tcp -audit 4 -auth X1.cfg
用Xvfb模拟产生一个X11 server,只要运行一次就可以了。
b、export DISPLAY=:1
设置登录到linux机器的终端的环境变量DISPLAY的值,登录一次linux需要运行一次该命令
c、./html2image www.google.com ./b.png
将www.google.com网页转化为b.png文件,保存在当前目录下
一些常见的问题:
1、 运行./Xvfb :1 -screen 0 640x480x24 -nolisten tcp -audit 4 -auth X1.cfg时报这个错“error opening security policy file /usr/X11R6/lib/X11/xserver/SecurityPolicy”,导致命令运行不成功。
原因:这个是由于操作系统没有安装xserver
解决方法:我们公司的redhat操作系统一般都装有apt工具包,用这个工具安装软件比较简单。命令如下:
a、# apt-cache search xserver ------------ 查找xserver软件
xorg-x11-server-Xorg - Xorg X server ------------- 查找结果
b、# apt-get install xorg-x11-server-Xorg ----------- 安装xserver
PS:xserver/SecurityPolicy有可能在/etc/X11/ 目录下,只需加个链接过去即可。
2、 运行./Xvfb :1 -screen 0 640x480x24 -nolisten tcp -audit 4 -auth X1.cfg时报类似于“Could not init font path element /usr/X11R6/lib/X11/fonts/CID/”缺少字库的错。
原因:如上,缺少字库。
解决方法:尽可能的安装需要的字库,尤其是中文简体,否则所截网页的图中会出现乱码。
a、# apt-cache search fonts ------------ 查找fonts软件
这条命令能搜出许多结果,我们只需尽可能的将所报的错中缺少的字库装上即可,但中文字库fonts-chinese必须装上,安装方式如问题1.
b、用apt-get install安装好的字库是在“/usr/share/”目录下,而不是在所报错误中显示的“/usr/X11R6/lib”,所以我们需要在 /usr/X11R6 下加一个链接指向 /usr/share/ ,命令如下:
# ln -s /usr/share/ lib