java html生成图片 您所在的位置:网站首页 Java生成图片 java html生成图片

java html生成图片

2023-02-19 06:11| 来源: 网络整理| 查看: 265

前言:最近,项目上需要实现一个功能,将html页面元素,以图片的故事保存在本地。在网上查阅资料很久,才勉强找到解决方案。

 

1、JAR包下载

pom:

gui.ava

html2image

0.9

百度云链接:https://pan.baidu.com/s/1MYu2wmCVf5qsronPNKUbRw

两种方案都可以使用,前者满足maven使用,后者单纯jar包文件。

 

2、实例代码:

import gui.ava.html.image.generator.HtmlImageGenerator; /** * 生成图片demo */ public class DemoClass { public static void main(String[] args){ HtmlImageGenerator imageGenerator = new HtmlImageGenerator(); String htmlStr = "技术成就一切!" + "" + ""; imageGenerator.loadHtml(htmlStr); try { imageGenerator.getBufferedImage(); // 线程休眠 Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } imageGenerator.getBufferedImage(); imageGenerator.saveAsImage("d:/hello-world.png"); imageGenerator.saveAsHtmlWithMap("hello-world.html","hello-world.png"); } }

 

3、效果:

 

4、HtmlImageGenerator方法扩展

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(file, imageUrl) - Creates an HTML file containing client-side image-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  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. (设置生成图片大小)

 

5、踩坑实录:

图片转化失败。

       当html代码里带有图片时,生成的程序必须有一定的等待时间,否则无法正常生成图片。

         try {

            imageGenerator.getBufferedImage();//转化图片

            Thread.sleep(1000);

          } catch (InterruptedException e) {

           e.printStackTrace();

         }

正式环境无法生成中文,原因是包含中文的html转换为image,而html中的字体默认使用的是系统字体,在windows上部署没有问题,但是在linux中运行的时候,由于没有中文相关字体,导致生成的图片中的汉子无法识别。

        解决方案:https://blog.csdn.net/leo3070/article/details/82773405

大部分常用的Html元素如h1、p、div、img、table、li、lu等可带样式转换成功。

        目前常用的input标签转换不成功,在生成的图片中不显示。图片大小显示正常。

注意生成的图片要以png为后缀,以jpg结尾会全黑。

 

6、参考资料:

java把html转成图片的方法:https://blog.csdn.net/superit401/article/details/82629524 Html2Image (JAVA):https://blog.csdn.net/xu_san_duo/article/details/78084582 java Html2Image 实现html转图片功能:https://www.cnblogs.com/zxf330301/p/5666592.html Java 实现HTML 页面转成image 图片:https://blog.csdn.net/oscar999/article/details/8696769 Html转图片的那些事:https://www.jianshu.com/p/f3c1490e29c7

 本文由上述资料整合而来,谢绝转载。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有