Html2Image的实现且问题(java)

Html2Image 使用java原因将html样式转成图片
使用html2Image,网上有很多关于这方面的代码,包括github上,但是呢我自己尝试了很多次,画出来的东西识别不了一些CSS,即不能识别全部的CSS样式导致画出来的图片不是预期的样式。

1.尝试1 gui.ava.html2image

  <dependencies>
        <!-- https://mvnrepository.com/artifact/gui.ava/html2image -->
        <dependency>
            <groupId>gui.ava</groupId>
            <artifactId>html2image</artifactId>
            <version>2.0.1</version>
        </dependency>

    </dependencies>
HtmlImageGenerator htmlImageGenerator = new HtmlImageGenerator();
htmlImageGenerator.loadHtml(htmlText);
BufferedImage img = null;
try {
    img = htmlImageGenerator.getBufferedImage();
// 线程休眠
    Thread.sleep(5000);
} catch (InterruptedException e) {
    e.printStackTrace();
}
htmlImageGenerator.getBufferedImage();
htmlImageGenerator.saveAsImage("C:\\Users\\Administrator\\Desktop\\test.png");
htmlImageGenerator.saveAsHtmlWithMap("cover.html","hello-world.png");

画出来的图片布局是很满意但是呢,如果html页面有图片则需要暂停一下线程估计图片画完了,等到线程回复然后输出,(这个时间具体多少不可控)。
2.尝试2 com.github.xuwei-k.html2image

 <dependency>
     <groupId>com.github.xuwei-k</groupId>
     <artifactId>html2image</artifactId>
     <version>0.1.0</version>
 </dependency>

有些CSS样式无法识别,导致整体布局有偏差。后来使用最原始的html来画整体布局,大致布局是正确的但是html上左边和上边没有白边,结果画出来的就有白边。包括分辨率什么的效果也不是很好。
3尝试三 java原生
跟gui.ava.html2image类似也是需要线程等待。

最后我使用的是java原生的Graphics2D和BufferedImage完成图片绘制的,没有再使用html转图片。我的时间比较着急所以也没有再去找有没有新的方式,所以希望大家有什么新的方法或者我的方法有问题的地方帮我指出,谢谢!

发布了30 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/syr1136877833/article/details/100924169