wkhtmltoimage(网页剪切功能)
1.wkhtmltoimage使用wkhtmltoimage-0.10.0_rc2-static-amd64.tar.bz2版本,最新版本为wkhtmltoimage-0.11.0_rc1-static-amd64.tar.bz2。
2.解压wkhtmltoimage,更改用户,组
# mkdir /usr/local/wkhtmltoimage
# cp wkhtmltoimage-0.10.0_rc2-static-amd64.tar.bz2 /usr/local/wkhtmltoimage
# cd /usr/local/wkhtmltoimage
# tar xvf wkhtmltoimage-0.10.0_rc2-static-amd64.tar.bz2 //可以看到解压后只有wkhtmltoimage-amd64一个可执行文件
# mv wkhtmltoimage-amd64 wkhtmltoimage
# chown root.root wkhtmltoimage //更改用户,组
3.使用wkhtmltoimage将html页面输出成jpg
# ./wkhtmltoimage gaingreat.com /tmp/gain.jpg ///tmp/gain.jpg指定输出图像位置,名称,可以是.png等格式
附录:
./wkhtmltoimage-amd64 gaingreat.com gain.jpg时出现Gtk-WARNING **: cannot open display:
Loading page (1/2)
[==============================> ] 51%
(:18608): Gtk-WARNING **: cannot open display:
因为我是用secureCRT ssh到这台机子上的,好像说是图像无法传送过来。直接到那台机子上试就没问题。参照网上的
# export DISPLAY=:0.0 //设置DISPLAY环境变量, 运行图形程序(如xclock)时会收到如下错误:
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
Error: Can't open display: :0.0
这是因为Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上. 如果需要别的用户的图形显示在当前屏幕上, 则应以当前登陆的用户, 也就是切换身份前的用户执行如下命令
# xhost + //这个命令将允许别的用户启动的图形程序将图形显示在当前屏幕上
xhost: unable to open display "0:0"
还是不行,后来看到说/etc/sshd/sshd_config ForwardX11默认是no,改为yes就可以了。
# vim /etc/sshd/sshd_config //修改ForwardX11为yes,其它不用动
ForwardX11 yes
# /etc/init.d/sshd restart //重启sshd即可
4.解决中文问题
找了 windows 里的宋体 simsun.ttc
上传到服务器 /usr/share/fonts/ 里
/usr/share/fonts/chinese/TrueType/simsun.ttc
安装这个 wkhtmltopdf 模块后,里面包含了 wkhtmltoimage 命令了!
5.测试脚本
xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltoimage "$@"
测试命令
./wkhtmltoimage.sh http://www.baidu.com baidu.jpg
wkhtmltoimage(网页剪切功能)的更多相关文章
- CentOS下Apache开启Gzip网页压缩功能
1.进入/etc/httpd/conf下打开httpd.conf文件 开启Gzip压缩功能,即去掉LoadModule deflate_module modules/mod_deflate.so这行前 ...
- Linux下vi编辑器粘贴复制剪切功能
RedHat 9.0 Linux下vi编辑器实现简单的粘贴复制剪切功能": 如果想把文件内的第三行内容黏贴到第十五行: 1.进入你的文件,(处于命令模式,而不是编辑模式) 2.将你的光标移到 ...
- JS实现Web网页打印功能(IE)
问题描述: JS实现Web网页打印功能 问题解决: 这里主要使用WebBrowser控件的ExeWB在IE中打印功能的实现 WebBrowser介绍: WebBrows ...
- MVC实现类似QQ的网页聊天功能-ajax(下)
此篇文章主要是对MVC实现类似QQ的网页聊天功能(上)的部分代码的解释. 首先说一下显示框的滚动条置底的问题: 结构很简单一个大的div(高度一定.overflow:auto)包含着两个小的div第一 ...
- 在ubuntu下把php的网页调试功能打开
我这儿的环境是 Ubuntu 14.04 + Lighttpd + PHP5.5 默认情况下php的网页调试功能是不打开的,当PHP解析到一个错误的语法时会直接输出为空白. 我在网上找一许多文章,说 ...
- nodeJS实现简单网页爬虫功能
前面的话 本文将使用nodeJS实现一个简单的网页爬虫功能 网页源码 使用http.get()方法获取网页源码,以hao123网站的头条页面为例 http://tuijian.hao123.com/h ...
- 商品呢拖拽到购物车,appendChild的剪切功能
今天来到了妙味课堂的html5课程的第2张的第8节,讲的是把商品拖拽到购物车的演示.其中有一个关于appendChild的使用,,每次拖拽都会触发这个方法,但是每次之后,却还是只有一个总价,好吧,说不 ...
- MPlayer-ww 增加边看边剪切功能+生成高质量GIF功能
http://pan.baidu.com/s/1eQm5a74 下载FFmpeg palettegen paletteuse documentation 需要下载 FFmpeg2.6 以上 并FFmp ...
- MPlayer-ww 增加边看边剪切功能
解压到 D:\MPlayer-ww 运行 copy_font.bat 安装字体 LED_font.ttf 双击 MPlayer_ww_openWith.reg 添加右键播放功能 outformat.i ...
随机推荐
- hdu 2433 Travel(还不会)
Problem Description One day, Tom traveled to a country named BGM. BGM is a small country, but ...
- hiho1393二分图多重匹配
题目链接:[http://hihocoder.com/problemset/problem/1393] 题意:中文题意. 题解:二分图的多重匹配.主要是建图然后跑一个最带流,再判断一下就可以了. 建图 ...
- Opencv学习笔记3:边缘检测算子的实现方法
一.边缘检测概念 图像的边缘检测的原理是检测出图像中所有灰度值变化较大的点,而且这些点连接起来就构成了若干线条,这些线条就可以称为图像的边缘.效果如图: 接下来介绍一下边缘提取的几种算子,具体证明过程 ...
- 什么是P问题、NP问题和NPC问题
为了迎接我的期末考试,认真的看了一下关于NP完全性理论这一章,奈何课本上说的我怎么都看不懂,所以找了个博客认真研究了一下,同样贴出来分享给大家,大牛就是大牛,把问题说的很明白,看完后受益匪浅.其中有一 ...
- BZOJ2754 SCOI2012喵星球上的点名
绝世好题. 正当我犹豫不决时,hzwer说:“MAP!!!” 没错这题大大的暴力,生猛的stl,贼基尔爽,,ԾㅂԾ,, 由于我们求点名在名字中的子串个数,所以将点名建AC自动机,记录节点属于哪次点名, ...
- nginx fastcgi_buffers to an upstream response is buffered to a temporary file
fastcgi_buffers 16 16k; 指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答,如上所示,如果一个php脚本所产生的页面大小为256k,则会为其分配16个16k的缓冲区来缓 ...
- 2017-2018-1 JAVA实验站 冲刺 day02
2017-2018-1 JAVA实验站 冲刺 day02 各个成员今日完成的任务 小组成员 今日工作 完成进度 张韵琪 写博客.进行工作总结 100% 齐力锋 找背景音乐.开始界面图片.按钮图片.按钮 ...
- thread_local变量(转)
转自:https://www.cnblogs.com/pop-lar/p/5123014.html thread_local变量是C++11新引入的一种存储类型.它会影响变量的存储周期(Storage ...
- [bzoj1019][SHOI2008]汉诺塔 (动态规划)
Description 汉诺塔由三根柱子(分别用A B C表示)和n个大小互不相同的空心盘子组成.一开始n个盘子都摞在柱子A上,大的在下面,小的在上面,形成了一个塔状的锥形体. 对汉诺塔的一次合法的操 ...
- gridview 空数据绑定
private void getDataBind() { DataTable dt = new DataTable(); dt.Columns.Add("id"); dt.Colu ...