java后台将html转成图片返回给前端(html2image)

最近有时间,就整理整理自己做过的项目~这是某医院的微信网页开发项目。
话不多说,进入正题

1.引入依赖:

<dependency>
			<groupId>gui.avagroupId>
			<artifactId>html2imageartifactId>
			<version>0.9version>
dependency>

2.实现代码如下:
service层

public void getImage(Long id, HttpServletResponse response) throws DataAccessException {
        try {
            /*String headHtml = "";*/
            String headHtml ="

最新检验结果

"
;//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();
        }
    }
}

结果:
java后台将html转成图片返回给前端(html2image)_第1张图片
颜色是因为后台指标判断标准数值后加了不同的color属性。

以上便是全部过程,有啥问题,欢迎留言!
觉得还不错可以点个赞哦~ 谢谢(๑•ᴗ•๑)

你可能感兴趣的:(javaweb,java基础,业务实战,html转成图片,后台返回图片)

项目名称结果单位参考值提示