当前位置:编程学习 > JAVA >>

Java 实现HTML 页面转成image 图片

前言
在java 中把HTML转化成图档,思路基本上是现在 AWT or Swing 的Panel上显示网页,在把Panel输出为 image 文件。
java 本身的API有提供相关的结果,但是直接产生的效果不是很好,所以有出现一些 library.
 
Java Core API
[java]  
public class HtmlToImage {  
  
    protected static void generateOutput() throws Exception {  
          
        //load the webpage into the editor  
        //JEditorPane ed = new JEditorPane(new URL("http://www.google.com"));  
        JEditorPane ed = new JEditorPane(new URL("http://www.hefeipet.com/client/chongwuzhishi/shenghuozatan/2012/0220/95.html"));  
        ed.setSize(200,200);  
  
        //create a new image  
        BufferedImage image = new BufferedImage(ed.getWidth(), ed.getHeight(),  
                                                BufferedImage.TYPE_INT_ARGB);  
  
        //paint the editor onto the image  
        SwingUtilities.paintComponent(image.createGraphics(),   
                                      ed,   
                                      new JPanel(),   
                                      0, 0, image.getWidth(), image.getHeight());  
        //save the image to file  
        ImageIO.write((RenderedImage)image, "png", new File("html.png"));  
    }  
    public static void main(String[] args) {  
        try {  
            generateOutput();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
  
}  
 
 
 
java-html2image
 
 
开源, 使用上很简洁。API Doc 和source code 都有。
[java]  
import gui.ava.html.image.generator.HtmlImageGenerator;  
  
public class Html2ImageTest {  
      
    public static void main(String[] args) {  
        HtmlImageGenerator imageGenerator = new HtmlImageGenerator();  
//      imageGenerator  
//              .loadHtml("<b>Hello World!</b> Please goto <a title=\"Goto Google\" href=\"http://www.google.com\">Google</a>.");  
        //imageGenerator.loadUrl("http://mtkplmap2:7001/esdm_web");   
        imageGenerator.loadUrl("http://www.hefeipet.com/client/chongwuzhishi/shenghuozatan/2012/0220/95.html");   
        imageGenerator.saveAsImage("hello-world.png");  
        imageGenerator.saveAsHtmlWithMap("hello-world.html", "hello-world.png");  
    }  
  
}  
 
Cobra
免费,开源
 
[java]  
public class CobraTest {  
    public static void main(String[] args) throws Exception {  
        JFrame window = new JFrame();  
        HtmlPanel panel = new HtmlPanel();  
        window.getContentPane().add(panel);  
        window.setSize(600, 400);  
        window.setVisible(true);  
        new SimpleHtmlRendererContext(panel, new SimpleUserAgentContext())  
                .navigate("http://www.hefeipet.com/client/chongwuzhishi/shenghuozatan/2012/0220/95.html");  
  
        BufferedImage image = new BufferedImage(panel.getWidth(),  
                panel.getHeight(), BufferedImage.TYPE_INT_ARGB);  
  
        // paint the editor onto the image  
        SwingUtilities.paintComponent(image.createGraphics(), panel,  
                new JPanel(), 0, 0, image.getWidth(), image.getHeight());  
        // save the image to file  
        ImageIO.write((RenderedImage) image, "png", new File("html.png"));  
    }  
}  
 
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,