日期:2014-05-17  浏览次数:20784 次

实现页面截图
要求是 比如 页面之中的标签<div>内容 生成一张图片。生成的图片和整个页面那部分显示的一样。上网查过用html2canvas类库可以做得到,但是网上资料很少,官网看不太懂,哪位大神研究过,来个java实例代码,指导下小弟。如果不用这个和flash,请指教用何种方式也可以实现(java实现)?谢谢了

------解决方案--------------------
之前的一个打开某站点,并截图的例子,可能与楼主的需求差不多。粘出来供参考,楼主可适当修改。

Java code
import java.awt.Desktop;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.net.URL;

import javax.imageio.ImageIO;

public class Test {

    public static void main(String[] args) throws Exception {
        Desktop.getDesktop().browse(new URL("http://www.baidu.com").toURI());//打开百度首页   
        Robot robot = new Robot();        
        robot.delay(10000);      
        Dimension d = new Dimension(Toolkit.getDefaultToolkit().getScreenSize());        
        int width = (int) d.getWidth();        
        int height = (int) d.getHeight();    
        robot.keyRelease(KeyEvent.VK_F11);        
        robot.delay(2000);        
        Image image = robot.createScreenCapture(new Rectangle(0, 0, width,height));        
        BufferedImage bi = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);        
        Graphics g = bi.createGraphics();       
        g.drawImage(image, 0, 0, width, height, null);
        ImageIO.write(bi, "jpg", new File("d://baidu.jpg"));//保存图片 
    }
}

------解决方案--------------------
页面中引用jquery.js和html2canvas.js
执行javascript脚本: $('div').html2canvas();