LINUX下PHP网页生成快照(截屏)(xvfb and wkhtmltoimage)

在做旅游攻略时,需要把攻略页面生成PDF和Jpg图片,PDF生成用的是《MPDF把Html生成PDF》,而HTML生成Jpg又卡壳了。前期打算以纯程式的生成,但是除了调用别的网站提供的远程API生成Jpg,不然以单纯的程式(GD库和内置函数,或封装的类)都没找到完美的解决。

不得已,安装扩展wkhtmltoimage生成。

安装步骤如下:

1、服务器端下载安装wkhtmltoimage,32和64位有区别,心情天空安装的是centos 5.8 32位。但是下载了 wkhtmltoimage 0.11版本但是出现以下错误,

Pixmap: Cannot create a QPixmap when no GUI is being used
QPixmap: Cannot create a QPixmap when no GUI is being used
QPixmap: Cannot create a QPixmap when no GUI is being used
QPixmap: Cannot create a QPixmap when no GUI is being used
QPixmap: Cannot create a QPixmap when no GUI is being used
QPixmap: Cannot create a QPixmap when no GUI is being used最后心情天空安装wkhtmltoimage-0.10.0_rc2-static-i386.tar.bz2低版本才可以正常生成。

32位
wget http://wkhtmltopdf.googlecode.com/files/wkhtmltoimage-0.10.0_rc2-static-i386.tar.bz2
tar jxf wkhtmltoimage-0.10.0_rc2-static-i386.tar.bz2
cp wkhtmltoimage-i386 /usr/local/bin/wkhtmltoimage
 
64位
wget http://wkhtmltopdf.googlecode.com/files/wkhtmltoimage-0.10.0_rc2-static-amd64.tar.bz2
mv wkhtmltoimage-0.10.0_rc2-static-amd64.tar.bz2 wkhtmltoimage-0.10.0_rc2-static-amd64.tar
tar -xvf wkhtmltoimage-0.10.0_rc2-static-amd64.tar
mv wkhtmltoimage-amd64 /usr/bin/wkhtmltoimage
就这样,安装成功,可以测试 wkhtmltoimage http://www.111cn.net/ screenshot.png

2、php执行wkhtmltoimage 生成图片

 代码如下 复制代码

set_time_limit(0);
shell_exec('/usr/local/bin/wkhtmltoimage http://www.111cn.net/ /usr/local/wwwroot/111cn.net/5eyi.jpg');

假若用foreach批量生成的话建议,sleep(10),每次生成后停顿几秒。

时间: 2024-11-08 17:18:40

LINUX下PHP网页生成快照(截屏)(xvfb and wkhtmltoimage)的相关文章

linux下使用iText生成pdf中文乱码 怎么解决啊

问题描述 linux下使用iText生成pdf中文乱码 怎么解决啊 生成的是乱码 而且是一坨. iText在linux环境下,怎么用啊.

clipboardData 在网页中实现截屏粘贴的功能

 代码如下 复制代码 <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>利用 clipboardData 在网页中实现截屏粘贴的功能</title> <style type="text/css"> #box{ width:200px; height:200px; bor

在网页中实现“截屏”上传图片功能

对于web来说,用户提到这个需求,我们起初的想法可能都是:除非开发嵌入式控件,不然根本无法实现.   不过随着webkit等内核的浏览器兴起,我们完全可以借助W3C的一些API,和一些变通的方式实现这个功能.   今天就讲讲如何在web页面中实现"截屏"并且上传.   这里"截屏"之所以要打引号,是因为确实无法实现"截屏",但是我们可以通过变通方式实现,比如客户短聊天软件,QQ,旺旺等,这些软件截屏之后,数据都会在"剪切板"中

Linux下LCD 10分钟自动关屏的问题总结

Linux下的LCD驱动默认10分钟后会自动关闭屏幕,我们可以修改一下代码让其不自动关屏 在有一个 drivers/char/vt.c 文件其中有一个变量(blankinterval)可以设置它来修改自动关屏的时间,也可以在函数(blank_screen_t)开头直接返回,这样就永远不会关屏了   在用LCD显示的时候,发现10分钟LCD就不再工作了.确实,Linux下有一个参数blankinterval的值就是10*60*Hz. 它决定了LCD只显示10分钟,然后LCD控制器就被关掉了. 具体

教你用Python脚本快速为iOS10生成图标和截屏_python

简介 这两天更新完Xcode8之后发现Xcode对图标的要求又有了变化,之前用的一个小应用"IconKit"还没赶上节奏,已经不能满足Xcode8的要求了. 于是就想起来用Python自己做个脚本来生成图标. 其实这个脚本很早就写了,现在为了适应iOS10,就修改完善下,并且放到了 GitHub . 可以看看效果图:   代码: #encoding=utf-8 #by 不灭的小灯灯 #create date 2016/5/22 #update 2016/9/21 #support iO

网站设计参考:使用截屏的网站设计实例

文章描述:23个在网页中使用截屏的实例. 无论你是在开发app或者网站,以截屏的方式告诉潜在的客户他们将得到的结果是个很不错的主意.而且如果你的产品看起来足够漂亮,你可能只是想要将其放在前面和中间,让它们成为页面的焦点. 为了给你提供点儿灵感,我们收集了一些这样做的网站.在这些例子中,你将会注意到这些截屏中的很多--就算不是全部--都被包围在他们可能出现在的某个浏览器(mac版safari最常见)或者设备之中.这有助于添加些语境,然后也是兴趣的另一个层面. 其实最近国内的网站也越来越多的见到这种

使用python编写android截屏脚本双击运行即可_python

测试的过程中经常需要截取屏幕,通常的做法是使用手机自带的截屏功能,然后将截屏文件复制出来,这种方法的优点是不需要连接数据线就可截屏,缺点则是生成的截屏文件命名是随机命名的,复制出来也比较麻烦.另一种方法是使用PC端的手机助手类软件. 这里使用python编写一个截屏的脚本,双击运行脚本就OK,截屏成功后会将截屏文件已当前时间命名,并保存在存放脚本的当前路径的screenshot文件夹下: #!/usr/bin/env python import os import time PATH = lam

Linux下的基本操作命令集锦

对于Linux下的开发人员来说,除了编写代码之外,也要熟练掌握Linux操作系统的一些基本操作.很多开发人员可能会有这样的经历:有很多非常简单的操作命令长期不用就忘掉了,等需要用到的时候又要到处去找,甚至去问周围的同事.在尴尬之余,我们也怪自己没有将那些简单而有用的操作命令记录下来. 本文汇总了我在使用Linux的过程中所使用过的一些基本操作,可供相关的开发人员参考.本文中的操作命令虽然比较简单,但很实用,相信对大家会有所帮助的. 这些基本的操作命令如下: 1.Linux下,如何从当前普通用户切

荣耀7i怎么截屏/截图

荣耀7i截图方法一:组合快捷键截图 [电源键]和[音量-键]一起按住几秒,即可把当前屏幕中的东西给截屏成图片保存在相册中了,如下所示: 注:荣耀7i的电源键以及音量键均位于机身右侧. 荣耀7i截图方法二:下拉菜单快捷开关截屏 拉菜单进行截图,在手机进入到要截图的界面,然后我们向下拉出拉菜单然后点击[截屏]字样点击一下便可截图,如下图所示: 总结得来讲方法一是所有安卓系统手机自带的一个功能了,而方法二截图是这款手机独有的截图方式了.