cutycapt:这个实用程序可以捕捉WebKit渲染的网页。CutyCapt是一个小型的跨平台命令行工具,用于捕捉WebKit将web页面渲染成各种矢量和位图格式,包括SVG、PDF、PS、PNG、JPEG、TIFF、GIF和BMP。
xvfb:Xvfb是一个实现了X11显示服务协议的显示服务器。 不同于其他显示服务器,Xvfb在内存中执行所有的图形操作,不需要借助任何显示设备。相当于一个虚拟显示器
ubuntu下安装cutycapt
apt-get install cutycapt
apt-get install xvfb
测试命令
xvfb-run --auto-servernum cutycapt --url=http://test.com --out=./test.png --min-width=400 --min-height=800
#--auto-servernum 用于当多次循环使用xvfb的屏幕时 可能会出现某个屏幕没有关闭然后又要被再次使用的情况 使用--auto-servernum可以避免这种情况
中文乱码问题:
将windows下的中文字体上传至/usr/share/fonts目录,执行下命令fc-cache即可。
php下使用
exec("sudo xvfb-run --auto-servernum cutycapt --url={$htmlUrl} --out={$realImage}", $output, $returnVar);
sudo 是因为执行命令涉及到文件夹权限问题
参考链接:
python - xvfb run error in ubuntu 11.04 - Stack Overflow