前言
最近搞了一个需求,功能大概是通过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的方式上传。
scp上传的思路是:
1.首先登陆跳板机,跳板机的~目录下,是允许直接rz上传文件的,我们rz先把字体上传到~目录下。
scp命令格式
scp 文件 目标服务器帐号@目标服务器:路径
把字体复制到指定目录 再使用sudo cp 到目标路径
路径1:/usr/share/fonts (系统字库路径)把所有字体都复制到该目录下
路径2:java
复制到安装路径的/jre/lib/fonts/目录下
fonts下创建fallback目录
复制所有字体到fallback目录下
6.刷新系统字体缓存(重要)
fc-cache
7.查看安装是否成功
fc-list
8.配置tomcat
在tomcat启动脚本中增加配置(vim startenv.sh )
export LANG=en_US.utf-8
本文由 SAn 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:
2020/06/12 14:44