java html生成图片后保存

本文介绍了一种使用Java将HTML转换为图片的方法,并演示了如何利用HtmlImageGenerator类加载HTML源码,将其保存为图片文件及生成包含客户端映射的HTML文件。
package com.ky.util;

import gui.ava.html.image.generator.HtmlImageGenerator;
public class Html2ImageTest {
       //此方法仅适用于JdK1.6及以上版本  
//        Desktop.getDesktop().browse(new URL("http://google.com/intl/en/").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://google.jpg")); 

public static void main(String[] args){
HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
String htmlstr = "<table width='654' cellpadding='0' cellspacing='0' bordercolor='#FFFFFF'><tr><td><img src='http://www.apkfather.com/yhqserver/images/mdl.jpg'/></td><td><img src='http://www.apkfather.com/yhqserver/images/mdl.jpg'/></td><td><img src='http://www.apkfather.com/yhqserver/images/mdl.jpg'/></td></tr><tr><td><img src='http://www.apkfather.com/yhqserver/images/mdl.jpg'/></td><td><img src='http://www.apkfather.com/yhqserver/images/mdl.jpg'/></td><td><img src='http://www.apkfather.com/yhqserver/images/mdl.jpg'/></td></tr><tr><td><img src='http://www.apkfather.com/yhqserver/images/mdl.jpg'/></td><td><img src='http://www.apkfather.com/yhqserver/images/mdl.jpg'/></td><td><img src='http://www.apkfather.com/yhqserver/images/mdl.jpg'/></td></tr><tr><td><img src='http://www.apkfather.com/yhqserver/images/mdl.jpg'/></td></tr></table>";
imageGenerator.loadHtml(htmlstr);
imageGenerator.getBufferedImage();
imageGenerator.saveAsImage("d:/hello-world.png");
imageGenerator.saveAsHtmlWithMap("hello-world.html", "hello-world.png");
}
}

HtmlImageGenerator Methods

  • loadUrl(url) - Loads HTML from URL object or URL string. (从url载入html)
  • loadHtml(html) - Loads HTML source. (载入本地html)
  • saveAsImage(file) - Save loaded HTML as image. (以图片形式保存html)
  • saveAsHtmlWithMap(fileimageUrl) - Creates an HTML file containing client-side image-map <map>generated from HTML's links. (创建一个HTML文件包含客户端image-map)
  • getLinks() - List all links in the HTML document and their corresponding href, target, title, position and dimension. (列出所有在HTML文档的链接和相应href、目标、头衔、位置和尺寸)
  • getBufferedImage() - Get AWT buffered image of the HTML. (获得awt,html缓冲后的图片)
  • getLinksMapMarkup(mapName) - Get HTML snippet of the client-side image-map <map> generated from the links. (HTML代码段里获得的客户端image-map <地图>产生的链接)
  • get/setOrientation(orientation) - Get/Set document orientation (left-to-right or right-to-left). (get/set文本定位)
  • get/setSize(dimension) - Get/Set size of the generated image. (设置生成图片大小)
转载自:http://blog.youkuaiyun.com/luohaobubu/article/details/7414554
资源在百度云上~~~
使用 Java 根据 HTML 生成图片可以借助一些工具和库来实现,以下为你介绍具体方法: ### 使用 Freemarker 动态填充数据生成 HTML 文件,再转换为图片 可利用上游报文生成一份 HTML 文件,然后将其转换成图片文件,此过程需要使用 Freemarker 来动态填充数据。例如有如下报文: ```plaintext [Education(schoolName=家里蹲大学, beginDate=2000-01-01, finishDate=2005-01-01, level=本科), Education(schoolName=牢里蹲大学, beginDate=2005-01-01, finishDate=2010-01-01, level=研究生)] ``` 可以先根据这个报文,使用 Freemarker 动态填充到 HTML 模板中生成最终的 HTML 文件,之后再将该 HTML 文件转换为图片文件 [^1]。 ### 使用 cssbox 库生成图片 这款插件使用方便,兼容性好,具体步骤如下: 1. **添加 maven 引用** ```xml <dependency> <groupId>net.sf.cssbox</groupId> <artifactId>cssbox</artifactId> <version>4.12</version> </dependency> ``` 2. **生成图片Java 代码示例** ```java import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import org.fit.cssbox.image.ImageRenderer; public class HtmlToImageExample { public static void main(String[] args) { try { ImageRenderer render = new ImageRenderer(); System.out.println("start"); String url = "https://developers.weixin.qq.com/miniprogram/dev/component/canvas.html"; // 网络链接的 html FileOutputStream out = new FileOutputStream(new File("D:" + File.separator + "html.png")); // 生成文件的路径 render.renderURL(url, out, ImageRenderer.Type.PNG); // 将 url 网页写入生成文件中 System.out.println("OK"); } catch (IOException e) { e.printStackTrace(); } } } ``` 上述代码通过 `ImageRenderer` 类将指定 URL 的 HTML 页面渲染为 PNG 图片保存到指定路径 [^3]。 ### 使用 saveAsHtmlWithMap 方法创建包含客户端 image - map 的 HTML 文件 `saveAsHtmlWithMap(file,imageUrl)` 方法可以创建一个包含客户端 image - map 的 HTML 文件,不过关于如何从这个 HTML 文件生成图片,引用中未详细说明后续步骤 [^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值