将HTML页面转为图片,找了很多方法,发现CSSBox对前端css支持性最好。在解码base64的时候,会出现中文乱码的问题,删除空格和换行即可
采用CSSBox(http://cssbox.sourceforge.net/)
net.sf.cssbox
cssbox
4.12
HTML转图片,再转base64
ImageRenderer render = new ImageRenderer();
String url = "http://127.0.0.1:8080/api/receiptPage";
File file;
InputStream inputStream = null;
byte[] data = null;
try {
//创建一个临时文件
file = File.createTempFile("temp", ".png");
//将html转为png
FileOutputStream out = new FileOutputStream(file);
render.renderURL(url, out, ImageRenderer.Type.PNG);
//字节流读取png
inputStream = new FileInputStream(file);
data = new byte[inputStream.available()];
inputStream.read(data);
out.close();
inputStream.close();
file.deleteO