如何把html转化为图象

一,背景

a,需求

b,已经有的调研结果

二,整个经历

a,调研过程中遇到的各种坑

用google搜索html2image linux 64

一个靠谱的网页说明在http://blog.163.com/agw_slsyn/blog/static/309151122012103115330848/,另外还有一个http://www.guangmingsoft.net/htmlsnapshot/html2image.htm

按照其中的方法:

Linux kernel- 2.2.14及以上: 安装必需lib及相关软件

yum install -y glibc gtk+ fontconfig cairo libpixman pango pango-devel 

下载html2image

wget http://www.guangmingsoft.net/htmlsnapshot/html2image.i386.tar.gz tar xvzf html2image.i386.tar.gz CD html2image 

设置LD_LIBRARY_PATH路径

export LD_LIBRARY_PATH=./ mkdir /usr/X11R6/lib ln - s /usr/share/X11 /usr/X11R6/lib/X11 

运行Xvfb

./Xvfb :1 -screen 0 640x480x24 -nolisten tcp -audit 4 -auth X1.cfg & export DISPLAY=:1 

生成图片

./html2image www.google.com a.jpg 

可忽略的错误:

error opening security policy file /usr/X11R6/lib/X11/xserver/SecurityPolicy Could not init font path element /usr/X11R6/lib/X11/fonts/TTF/, removing from list! Could not init font path element /usr/X11R6/lib/X11/fonts/Speedo/, removing from list! Could not init font path element /usr/X11R6/lib/X11/fonts/Type1/, removing from list! Could not init font path element /usr/X11R6/lib/X11/fonts/CID/, removing from list! 


生成1024x768 格式 容量

jpg 871K

gif 4.12M

png 1.13M 

----

HTML2Image(http://www.guangmingsoft.net/htmlsnapshot/html2image.htm)是一个运行在Linux/Unix平台上将网页转化为图片的工具,它能将网页转化为bmppngjpg等格式的图片。通常,html2image需要运行在一个X server上,不过我们也可以不安装 一个真的X11 server,使用Xvfb来替代X server运行html2image。这样做可以使我们在服务器上更快的将html页面转化为image


html2image的安装及使用方法:

1、  解压包文件到服务上的某个目录下。(例如/usr/local/html2image/);

2、  html2image的文件路径加到shared libraryld路径中。例如:

    export LD_LIBRARY_PATH=/usr/local/html2image/

或者你可以将这个路径加到/etc/ld.so.conf,然后运行ldconfig

3、  X server上运行html2imagehtml转化为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,只要运行一次就可以了。

bexport DISPLAY=:1 

设置登录到linux机器的终端的环境变量DISPLAY的值,登录一次linux需要运行一次该命令

c./html2image www.google.com  ./b.png

www.google.com网页转化为b.png文件,保存在当前目录下


这其中遇到的问题主要在运行的过程当中出的各种core,这个实在是没法调,并且还把系统给搞挂了,因为在/etc/ld.so.conf做了更改,把动态库的路径当中增加了一个路径,就是他给的那个目录,结果他给的那个目录里面有好多个系统的库,它就把覆盖了,结果就出现了大坑,开机都开不了,启动到用户登录的界面的时候,出现了certmonger failed,还好在一位大牛的指点下成功fix了

还出现libxul.so一直找不到的问题,结果通过网上查说是得装firefox,然后就装了,结果报X错误

装了xvfb

此路不通,还导致服务器挂掉,希望有大牛给出此按照此路径走成功的整个过程

b,使用HTML2image
此方案比较简单易行,下了一个jar包之后,按照它给的例子即可很快搞定,参考网址,https://code.google.com/p/java-html2image/issues/detail?id=14

其对于css支持不是很好,因此很多格式显示的有问题,另外它的dimensions也不起作用,这里也没做太多的研究

猜测其是直接把text打印到jpanel上,然后保存成image,没看其源代码,有兴趣的同学可以看看

http://stackoverflow.com/questions/7440067/using-css-in-html2imagejava

c,再次调研wkHTMLtoPDFhttp://wkhtmltopdf.org/

这次我先在自己的机器上装了个windows版本的,并用命令行试了试,感觉非常不错,于是才敢装到服务器端,太赞了

三,结论

http://stackoverflow.com/questions/20804994/render-and-screenshot-a-web-page

这个网页非常不错


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值