当前位置:网站首页 > 网站建设教程 > HTML教程 > 正文

使用cssbox将html文件转为图片文件

教程管理员 发布于2023-09-30 22:07 HTML教程 151

简介: 使用cssbox将html文件转为图片文件


在我的另一篇博客 使用freemarker动态填充html并可转为图片中,大家已经了解到如何使用freemarker动态填充html文件了,那么如何将html文件转为图片文件呢?

1. 引入依赖

<dependency>
    <groupId>net.sf.cssbox</groupId>
    <artifactId>cssbox</artifactId>
    <version>4.14</version>
</dependency>


2. 编写Util类

public class Html2ImageUtil {

    public static void transferHtml2Image(String htmlFilePath, String imageFilePath, Integer width, Integer height) {
        ImageRenderer render = new ImageRenderer();
        render.setWindowSize(new Dimension(width, height), false);
        String url = new File(htmlFilePath).toURI().toString();
        try {
            FileOutputStream out = new FileOutputStream(imageFilePath);
            render.renderURL(url, out, ImageRenderer.Type.PNG);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


3. 调用Util

Html2ImageUtil.transferHtml2Image("result.html", "result.png", WIDTH_IMAGE, HEIGHT_IMAGE);


然后就可在项目根目录下找到生成的名为"result.png"的图片文件啦。

4. 存在的问题

对于外部引用的js不支持;虽然存在不完美的地方,但仍然不失为一个好用的html转图片的工具哦~

5. 改进

如果大家觉得效果不够好,可以尝试使用cssbox的5.0.0版本,详见我的另一篇博客:使用5.0.0版本的cssbox将html文件转为图片文件,并解决字体显示问题


琼ICP备09004296号-12