JAVA 网页转图片
2016-12-20 10:36
267 查看
最近遇到一个需求,需要将网页转成图片,一番折腾之后,发现了2中方法:
html2image
cssbox
maven:
大致看了下它的源码,只有5个类, 很简单,缺点是对css的支持非常不好。故放弃了使用。
示例代码如下:
maven:
调用非常简单,能支持较多的css。当我在本地测试通过正得意时, 部署上线上linux系统,又发现一个坑爹的问题,导出的图片,文字变成乱码了。。
解决方案:
- 在网上下载中文字体,我这下载的是微软雅黑msyh.rar
- 将msyh.rar放入 /usr/share/fonts/zh_CN, zh_CN 文件夹需要自己创建。
- cd %JAVA_HOME%/jre/lib/fonts
- mkdir fallback
- 将msyh.ttf字体复制到fallback中
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网页快照-网页转存为图片
- java 从通过网址获取网页图片
- 用java下载一个网页图片
- java下载网页链接上的图片
- 介绍几个java把网页报存为图片的框架
- 提取网页的图片链接的Java程序
- JAVA & JSP 之旋转图片(JAVA图形化小程序——>网页应用)
- java hibernate 将图片存入数据库,并从数据库取出显示在网页上
- 关于java抓取网页数据与图片
- java 抓取网页图片并保存
- 【源码分享】用Java写的网页图片、CSS、JavaScript分类下载器
- Java获取网页内容、图片、JavaScript和CSS文件工具类
- JAVA实现自动打开URL对应的网页并保存为图片-不借助第三方API
- java采集网页图片
- java 获取网页(络)图片并保存
- java下载网页内容和网络图片
- JAVA实现自动打开URL对应的网页并保存为图片-不借助第三方API
- 用java抓取网页图片
- 利用java抓取网页某个图片
- java中用jsoup抓取网页源码,并批量下载图片