使用html2image-0.9.jar生成图片。
在本地window系统正常,放到服务器linux系统时候中文乱码问题。英文可以,中文乱码应该就是字体问题了。
public static void Html2Image(String file,String content){
HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
Dimension ds = new Dimension(400,4000);
imageGenerator.setSize(ds);
String htmlstr = content;
imageGenerator.loadHtml(htmlstr);
imageGenerator.getBufferedImage();
try {
ImgUtil.mkdirPath(file);
imageGenerator.saveAsImage(file);
} catch (Exception e) {
e.printStackTrace();
}
imageGenerator.saveAsHtmlWithMap("hello-world.html", file);
}
解决办法
就是让服务器找到字体
检查容器启动参数
我用的resin。查看启动脚本
#!/bin/bash
export LANG=en_US.utf-8
export JAVA_HOME=/usr/java/jdk1.6.0_45
export NGINX_HOME=/usr/local/nginx-1.5.2
export RESIN_HOME=/usr/local/resin-3.0.28
。。。
。。。
要设置 LANG=en_US.utf-8
查看jre字体文件
需要在 jdk/jre/lib/fonts下加入simsun.ttf字符集
检查linux安装的字体
fc-list :lang=zh 中文
fc-list :lang=en 英文
如图:
如果没有,安装字体
安装
copy 字体文件 到/usr/share/fonts/ 下解压文件。