Bootstrap

[JavaWeb]将Web页面内容生成图片

在工作中遇到一个需求,是要将Web页面内容生成一张图片,然后导出下载。

下面是四种不同的实现方式:

  • (1)此方法需要用到html2image-0.9.jar
    /**
     * html2image-0.9.jar
     * 
     * HtmlImageGenerator 常用方法
     * 
     * loadUrl(url) - (从url载入html)
     * loadHtml(html) - (载入本地html)
     * saveAsImage(file) - (以图片形式保存html)
     * saveAsHtmlWithMap(file, imageUrl) - (创建一个HTML文件包含客户端image-map)
     *
     * getLinks() - (列出所有在HTML文档的链接和相应href、目标、头衔、位置和尺寸)
     * getBufferedImage() - (获得awt,html缓冲后的图片)
     * getLinksMapMarkup(mapName) - (HTML代码段里获得的客户端image-map <地图>产生的链接)
     *
     * get/setOrientation(orientation) -  (get/set文本定位)
     * get/setSize(dimension) -  (设置生成图片大小)
     */

举例:

        HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
        imageGenerator.loadUrl("http://www.baidu.com"); 
        imageGenerator.saveAsImage("d:/hello-world.png");  
        imageGenerator.saveAsHtmlWithMap("hello-world.html", "hello-world.png");
  • (2)此方法需要用到Cobra.jar
        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.baidu.com");

        BufferedImage image = new BufferedImage(panel.getWidth(),
                
;