最近搞了一个需求,功能大概是通过html生成图片。功能是挺简单的吧?
本地测试没什么问题,但是发服务器上,发现html生成的imgae中文乱码。
首先google了一圈
发现这个框架比较冷萌,几乎没什么可参考的资料,但是可以搜索同功能的框架(Html2Imgage),应该会出现同样的问题,因为本地没问题,所以可以确定是环境问题。
类似功能的框架,也出现了中文乱码问题,但是图片上渲染的中文是框框的形式。
所以我们也可以排除掉乱码问题,因为乱码应该会展示字体,只是我们读不懂,这个框框说明缺少字库!
google一圈发现的却缺少了中文字体库,生成图片缺少什么字体就全部准备好。
像我这里缺少微软雅黑,宋体等。字体可以到系统C:\WINDOWS\Fonts\下获取,记得字体格式是ttf的,win10是没有的。xp win7有,网上说可以把win10的格式ttc改成ttf,我没试过,你们可以尝试下。
前面找到了问题产生的关键,所以我们要开始动手解决它!
这里因为我的服务器已经装好中文字体插件了,因此直接进入正题,没有的可以看下这个文章https://blog.csdn.net/wlwlwlwl015/article/details/51482065
检查是否安装中文字体插件命令
fc-list
如果没报not common说明安装了。
首先我们要把字体上传到服务器
这里我使用的xshell终端,直接使用rz命令上传文件到服务器。(rz提示找不到命令麻烦百度装下插件)
我们公司对服务器直接上传文件做了限制,不能直接rz上传,只能通过scp的方式上传。
(可以直接上传忽略1,2步骤)
scp上传的思路是:
1.首先登陆跳板机,跳板机的~目录下,是允许直接rz上传文件的,我们rz先把字体上传到~目录下。
6.刷新系统字体缓存(重要)
fc-cache
7.查看安装是否成功
fc-list
8.配置tomcat
在tomcat启动脚本中增加配置(vim startenv.sh )
export LANG=en_US.utf-8
重启Tomcat 搞定!!!!