Maven管理
<dependency>
<groupId>net.sf.cssbox</groupId>
<artifactId>cssbox</artifactId>
<version>4.14</version>
</dependency>
其所以依赖的jar包:
集成调用方法:
import java.awt.Dimension;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.fit.cssbox.demo.ImageRenderer;
import org.xml.sax.SAXException;
public class Html2ImageWithCssBox {
public static void main(String[] args) throws IOException, SAXException {
ImageRenderer render = new ImageRenderer();
System.out.println("start...");
String url = "http://localhost:8080/createPic";
FileOutputStream out = new FileOutputStream(new File("C:/Users/Desktop/worknote/new_score/myHtmlcssbox.png"));
render.setWindowSize(new Dimension(1900, 1000), false);
render.renderURL(url, out, ImageRenderer.Type.PNG);
out.close();
System.out.println("OK");
}
}
注意事项:
1、通过源码发现其生成图片只能是“.png”和“.svg”格式;
2、中文乱码问题:集成到系统部署到Linux环境后会存在中文字符编译异常,都显示成“□”;
解决方法是修改源码数据:找到文件“VisualContext.java” 所属:package org.fit.cssbox.layout,
其构造函数中对font进行了初始化化:
将该段修改为:font = new Font("宋体", Font.PLAIN, (int) CSSUnits.medium_font); 即可