首页 > 编程语言 >HTML转图片-JAVA

HTML转图片-JAVA

时间:2022-12-13 14:47:02浏览次数:34  
标签:style JAVA color html HTML font border 图片

依赖组件

<dependency>
	<groupId>gui.ava</groupId>
	<artifactId>html2image</artifactId>
	<version>0.9</version>
</dependency>

示例

HtmlImageGenerator generator = new HtmlImageGenerator();
generator.loadHtml("<b>Hello World!</b> Please goto <a title=\"Goto Google\" href=\"http://www.google.com\" style=\"font-size:24px\">Google</a>.");
// 如果HTML需要加载图片,需要睡眠,
//  图片src不支持相对路径,也不支持base64,必须加上file:/// 或者直接写http的url
ThreadUtil.sleep(500);
// 某些格式生成是黑的 不行 需要自己去实验
generator.saveAsImage(new File("D:\\1.png"));

// 直接生成byte[]
BufferedImage bufferedImage = generator.getBufferedImage();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
try {
    ImageIO.write(bufferedImage, "jpg", outputStream);
    byte[] bytes = outputStream.toByteArray();
} catch (IOException e) {
    throw new RuntimeException("生成失败", e);
}
-------------------------

loadUrl(url)  (从url载入html)
loadHtml(html) (载入本地html)
saveAsImage(file) (以图片形式保存html)
saveAsHtmlWithMap(file, imageUrl) (创建一个HTML文件包含客户端image-map)
getLinks()(列出所有在HTML文档的链接和相应href、目标、头衔、位置和尺寸)
getBufferedImage() (获得awt,html缓冲后的图片)
getLinksMapMarkup(mapName) (HTML代码段里获得的客户端image-map <地图>产生的链接)
get/setOrientation(orientation) (get/set文本定位)
get/setSize(dimension)  (设置生成图片大小)

注意

这个组件依赖JEditorPane类,这个只支持HTML3.2标准,少量的css样式

根据javax.swing.text.html.CSS.java中的说明

font-family
font-style
font-size (supports relative units)
font-weight
font
color
background-color (with the exception of transparent)
background-image
background-repeat
background-position
background
text-decoration (with the exception of blink and overline)
vertical-align (only sup and super)
text-align (justify is treated as center)
margin-top
margin-right
margin-bottom
margin-left
margin
padding-top
padding-right
padding-bottom
padding-left
padding
border-top-style
border-right-style
border-bottom-style
border-left-style
border-style (only supports inset, outset and none)
border-top-color
border-right-color
border-bottom-color
border-left-color
border-color
list-style-image
list-style-type
list-style-position

标签:style,JAVA,color,html,HTML,font,border,图片
From: https://www.cnblogs.com/ranger-dev/p/16978707.html

相关文章

  • UE4 读取本地图片
    参考链接:​​https://answers.unrealengine.com/questions/235086/texture-2d-shows-wrong-colors-from-jpeg-on-html5-p.html​​我这里,不能将图片全放工程之中,需要在外部......
  • Effective Java-2. 当构造方法参数过多时使用builder模式
    背景静态工厂和构造方法不能很好的拓展到很多可选参数的场景,因为参数过多的时候,调用其构造方法不太能知道每个位置参数的含义,容易出bug那么为这个类编写什么样下的构造方......
  • Effective Java-1.考虑使用静态工厂方法代替构造方法
    静态工厂方法的优点不像构造方法,静态工厂是有名字的精心构造的名称使得静态工厂方法更容易使用和理解,即知道创建的是什么对象与构造方法不同,不用每次都创建一个新的......
  • 直播电商平台开发,HTML和CSS分别实现注册页面表单
    直播电商平台开发,HTML和CSS分别实现注册页面表单<!DOCTYPEhtml><html><head>  <metacharset="UTF-8">  <title>HTML注册页面</title></head><body><formaction......
  • javascript中setInterval越来越快的问题解决方法
    vartimerfunctionrun(){ //clearInterval要放在方法开始,不然的话,下面的代码还没运行到clearInterval,又开始了循环了。if(timer){clearInter......
  • HTML布局
    使用<div>元素的HTML布局注释:<div>元素常用作布局工具,因为能够轻松地通过CSS对其进行定位。这个例子使用了四个<div>元素来创建多列布局:<body><divid="hea......
  • Java NIO、NIO.2学习笔记
    相关学习资料http://www.ibm.com/developerworks/cn/education/java/j-nio/j-nio.html 目录1.NIO、NIO.2简介2.NIO中的关键技术 1.NIO、NIO.2简介Java中的输入流、输出......
  • java 将小数拆分为两部分+浮点型精度丢失问题
    问题:将一个String类型的小数拆分为整数部分和小数部分,如9.9拆分为9和0.91.将小数的整数和小数部分拆分开publicfloatnumberSub(StringtotalMoney){floatmoneyFl......
  • Java方法
    方法方法的定义方法就是一段可重复调用的代码段,例如:有某段长度约100行的代码,要在多个地方使用此段代码,如果在各个地方都重复编写此部分代码的话,则肯定会比较麻烦,而且此部......
  • pom之 数据源信息 spring-boot-starter-jdbc ,mysql-connector-java
    <!--    数据源信息--><!--    <dependency>--><!--      <groupId>org.springframework.boot</groupId>--><!--      <arti......