最近有时间,就整理整理自己做过的项目~这是某医院的微信网页开发项目。
话不多说,进入正题
1.引入依赖:
<dependency>
<groupId>gui.ava</groupId>
<artifactId>html2image</artifactId>
<version>0.9</version>
</dependency>
2.实现代码如下:
service层
public void getImage(Long id, HttpServletResponse response) throws DataAccessException {
try {
/*String headHtml = "<table border='1'><tr><td>项目名称</td><td>结果</td><td>单位</td><td>参考值</td><td>提示</td></tr>";*/
String headHtml = "<h1 style='text-align:center'>最新检验结果</h1>";//html代码
HtmlToImageUtil.toImage(headHtml , response);
} catch (Exception e) {
logger.info(e);
}
}
controller层
@ResponseBody
@RequestMapping("/getImage")
public void getImage(@RequestParam Long id, HttpServletResponse response) {
dimsService.getImage(id, response);
}
工具类:
public class HtmlToImageUtil {
public static void toImage(String html, HttpServletResponse response) {
try {
response.setCharacterEncoding("utf-8");
OutputStream out = response.getOutputStream();
HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
imageGenerator.loadHtml(html);//也可以根据html url引用 loadUrl的方式加载
BufferedImage bufferedImage = imageGenerator.getBufferedImage();
Graphics2D g = bufferedImage.createGraphics();
Font font = new Font("Microsoft YaHei", Font.BOLD, 12);
g.setFont(font);
Thread.sleep(1000); //有时会有加载图片延迟,因此这里设置下延时
ImageIO.write(bufferedImage, "png", out);//输出图片 图片泛红(1)jpg改成png即可
out.close();
/*imageGenerator.getBufferedImage();*/
//Thread.sleep(2000);
/* String imageName = "C:\\"+ UUID.randomUUID().toString() + ".png";*/
/*imageGenerator.saveAsImage(imageName);*/
} catch (Exception e) {
e.printStackTrace();
}
}
}
结果:
颜色是因为后台指标判断标准数值后加了不同的color属性。
以上便是全部过程,有啥问题,欢迎留言!
觉得还不错可以点个赞哦~ 谢谢(๑•ᴗ•๑)