网页转图片

本文对比了html2image和cssbox两个将HTML转换为图片的库。html2image使用简便,但对CSS支持有限,尤其是不支持<style>标签内的样式和外部CSS文件。cssbox提供了更强大的CSS支持,但在线上Linux环境中存在中文显示问题,需额外配置中文字体。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一些总结


html2image

示例代码如下:

HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
String htmlstr = "<div>xxxxxxxxx</div>";
imageGenerator.loadHtml(htmlstr);
imageGenerator.getBufferedImage();
imageGenerator.saveAsImage("d:/hello-world.png");
imageGenerator.saveAsHtmlWithMap("hello-world.html", "hello-world.png");

maven:

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

放弃的原因:
1、css样式不能写在<style>标签中,不能引用其他css文件,只能写在style属性中。
2、对css的支持不好。

cssbox

官网:http://cssbox.sourceforge.net/
示例代码如下:

ImageRenderer render = new ImageRenderer();
String url = "";
FileOutputStream out = new FileOutputStream(new File(filePath));
render.setWindowSize(new Dimension(1080,1920), false);
render.renderURL(url, out, ImageRenderer.Type.PNG);
out.close();

maven:

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

优点:调用非常简单,能支持较多的css。
遇到的问题

1、部署到测试linux系统,正常,部署到线上linux系统,发现导出的图片中文文字全部不显示。
原因:不支持中文字体。(安装字体请看:linux相关知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值