网页转图片

一些总结

html2image

示例代码如下:

1
2
3
4
5
6
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:

1
2
3
4
5
<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/
示例代码如下:

1
2
3
4
5
6
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:

1
2
3
4
5
<dependency>
<groupId>net.sf.cssbox</groupId>
<artifactId>cssbox</artifactId>
<version>4.12</version>
</dependency>

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

遇到的问题

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

文章目录
  1. 1. html2image
  2. 2. cssbox
  3. 3. 遇到的问题
|