• Html2Image转换html成图片的一些坑


      在将html转成图片这个领域,Html2Image这个工具使用率是不低的。但是这个工具有个明显的坑。

      一、当你的html页面引入外部的CSS文件以及JS文件,生成的图片是无法带有这些动态效果的。也就是说,它不支持复杂的动态特性,只能支持写在html代码里的css效果。

      二、当html代码里带有图片时,生成的程序必须有一定的等待时间,否则生成的图片就会是这样的

    如果你不想得到这样的图片,你需要设法在代码生成图片前让程序等待一会,比如Thread.sleep(8000);

     1 package htmlToImg;
     2 
     3 import gui.ava.html.image.generator.HtmlImageGenerator;
     4 
     5 public class HtmlToImgTest {
     6     public static void main(String[] args) {
     7         HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
     8 //        String html = "<div class="header"><ul class="nav"><li><a href="/getAllQuestion">题库管理</a>"
     9 //        + "<ul class="second-nav"><li style="display:inline-block;800px;height:250px"><a href="/getAllQuestion">题目列表</a></li><li><a href="/getQuestion">查找题目</a></li><li><a href="/addQuestionPage">增加题目</a></li>"
    10 //        + "<li style="display: none"><a href="#">编辑题目</a></li><li style="display: none"><a href="#">删除题目</a></li></ul></li></ul></div>";
    11 //        String html = "<p class="tiy"><a target="_blank" href="/tiy/t.asp?f=csse_font_size_em_percent">亲自试一试</a></p>";
    12         String html = "<div style=" 500px; height: 500px;"><img src="http://car0.autoimg.cn/upload/spec/8090/u_20101129100303187264.jpg" width="350" height="233"><a href="#" style="color: red;">testImage</a></div>";
    13         imageGenerator.loadHtml(html);
    14         try {
    15 //            Thread.sleep(5000);
    16             imageGenerator.getBufferedImage();
    17             Thread.sleep(8000);
    18         } catch (InterruptedException e) {
    19             e.printStackTrace();
    20         }
    21         imageGenerator.saveAsImage("d:/car.png");
    22         imageGenerator.saveAsHtmlWithMap("hello-world.html", "d:/car.png");
    23         System.out.println("finish");
    24     }
    25 }
    View Code

    这样就得到了正常显示的图片了

      初步估计是工具加载流未完成就进行图片的生成以及保存工作,具体原因有时间再深究,先记录下这个API的一些小瑕疵。

  • 相关阅读:
    某题3
    无向图Tarjan&&求树直径
    分布式消息中间件(一)设计
    大数据算法(一)亚线性算法
    SparkSQL
    MySQL索引
    Spark程序设计
    Java高并发网络编程(五)Netty应用
    Java高并发网络编程(四)Netty
    Java高并发网络编程(三)NIO
  • 原文地址:https://www.cnblogs.com/junqiao/p/7359037.html
Copyright © 2020-2023  润新知