您的位置:首页 > 编程语言 > Java开发

JAVA 网页转图片

2016-12-20 10:36 267 查看
最近遇到一个需求,需要将网页转成图片,一番折腾之后,发现了2中方法:

html2image

cssbox

1)html2image

示例代码如下:

HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
String htmlstr = "<p>页面内容</p>";
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>


大致看了下它的源码,只有5个类, 很简单,缺点是对css的支持非常不好。故放弃了使用。

2)cssbox

官网:http://cssbox.sourceforge.net/

示例代码如下:

ImageRenderer render = new ImageRenderer();
FileOutputStream out = new FileOutputStream(new File("D:/html.png"));
render.renderURL(url, out, ImageRenderer.Type.PNG);


maven:

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


调用非常简单,能支持较多的css。当我在本地测试通过正得意时, 部署上线上linux系统,又发现一个坑爹的问题,导出的图片,文字变成乱码了。。

解决方案:

- 在网上下载中文字体,我这下载的是微软雅黑msyh.rar

- 将msyh.rar放入 /usr/share/fonts/zh_CN, zh_CN 文件夹需要自己创建。

- cd %JAVA_HOME%/jre/lib/fonts

- mkdir fallback

- 将msyh.ttf字体复制到fallback中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 网页转图片