最近遇到一个需求,需要将网页转成图片,一番折腾之后,发现了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 网页转图片相关推荐

  1. java提供图片链接,提取网页的图片链接的Java程序

    提取网页的图片链接的Java程序 输入网页文件名,和资源列表文件名 输出资源列表文件供迅雷下载. 适用于批量下载图片. 由两个文件组成. 没有提供网页下载功能,因为我没有时间写,相关的代码以后再贴. ...

  2. java抓取网页标题内容_[Java教程]java 网页页面抓取标题和正文

    [Java教程]java 网页页面抓取标题和正文 0 2014-07-10 09:01:30 import java.io.BufferedReader;import java.io.IOExcept ...

  3. 网页转图片 java_java-网页转图片

    对比了网上常用的好几种网页转图片的开源插件,最后效果还不如使用原生的java直接写来得好,上代码,很简单,中间需要考虑网页加载延迟的问题,所以需要加上thread.sleep,休眠一下等待网页加载完成 ...

  4. java添加背景图片_Java怎么添加背景图片

    首先,导入相关的包: import java.awt.BorderLayout; import java.awt.Container; import javax.swing.ImageIcon; im ...

  5. java实现gif动画效果(java显示动态图片)

    关闭 关闭 脚本之家 软件下载 源码下载 在线工具 网页教程基础 服务器常用软件 手机版 关注微信 网页制作 网络编程 脚本专栏 脚本下载 数据库 CMS教程 电子书籍 平面设计 媒体动画 操作系统 ...

  6. 压缩图片大小的java代码_java按比例压缩图片的源代码,用java如何把图片处理到指定大小...

    [要分析某个网页中的代码构成,需要某个结点下的内容.用此原始方法可以得到整个网页的源码.其实更简单的方法是使用 WebClient 或 HtmlUtil 等开源方式 .public class Ht ...

  7. android webview 多文件上传,Android网页WebView图片文件上传的问题

    Android网页WebView图片文件上传的问题 发布时间:2020-07-13 22:48:15 来源:51CTO 阅读:5922 作者:拾荒者老大 在安卓下,webview上传图片点击是没用的, ...

  8. Java网页数据采集器[下篇-数据查询]【转载】

    本期概述 上一期我们学习了如何将html采集到的数据存储到MySql数据库中,这期我们来学习下如何在存储的数据中查询我们实际想看到的数据. 数据采集页面 2011-2012赛季英超球队战绩 如果是初学 ...

  9. 手机端网页中图片之间出现白线的解决方法

    手机端网页中图片之间出现白线的解决方法 参考文章: (1)手机端网页中图片之间出现白线的解决方法 (2)https://www.cnblogs.com/syzdidi/p/9686463.html 备 ...

最新文章

  1. python八大选择排序_Python实现选择排序
  2. mysql数据库什么是事件_MySQL数据库之mysql 事件(Event) 总结
  3. 音视频技术开发——还有什么不能讲的?
  4. linux 文件列添加字段,如何在linux中加入所需列的文件?
  5. .NET CORE MYSQL 微信小程序 HTTPS 随笔
  6. Linux命令Man解释:PPPD(8):点对点daemon协议
  7. 微软 Build 2020 为 WSL 带来的新消息一览:WSL2 即将到来,对 GPU 和 Linux GUI 的支持也不远了
  8. 【干货】2021技术展望:开拓新局,掌握变局时代的技术先机-埃森哲.pdf(附下载链接)
  9. sklearn10-使用总结
  10. C语言函数 思维导图
  11. 钉钉的微应用如何测试;
  12. acm 程序设计大赛各种输入方式(python版)
  13. 中山大学非全日制计算机考研,中山大学社会工作非全日制考研经验贴
  14. Maven的仓库(转载自Maven实战 作者许晓斌)
  15. 属性管理器没有Microsoft.Cpp.x64.user的解决办法
  16. php 以自动打字程序,使用vbs脚本实现自动打字祝福与搞笑实现代码
  17. 海外推广运营的技巧汇总
  18. 海康威视2017软件精英挑战赛初赛题目
  19. 动物识别系统-tensorflow项目
  20. 时空猎人服务器维护中是什么意思,时空猎人玩家自助FAQ问题汇总新手必备

热门文章

  1. Eclipse为什么要先安装Tomcat
  2. SonicWALL 防火墙配置步骤
  3. https证书加密过程介绍
  4. COMP9201_22T1笔记
  5. 使用pyspark 的udf进行tensorflow 模型的预测报错 _pickle.PicklingError: Could not serialize object:
  6. 安装腾讯通 rtx 老是提示用户名密码错误
  7. 全球搜索引擎营销大会(上海站)即将召开
  8. 抗干扰的秘诀:分类、整理与专注
  9. ESB(企业服务总线)相关知识点总结
  10. python数据分析用什么软件好_居民出行OD调查后数据分析应该用什么软件做?