在工作中遇到一个需求,是要将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(),