最近用CentOS上,用puppeteer把html生成pdf,但是生成文件后,但是中文内容是乱码。
首先考虑的就是操作系统是否有中文字体,在CentOS 7中发现输入fc-list :lang=zh命令查看字体返回列表是空;
[root@w183 chinese]# fc-list :lang=zh [root@w183 chinese]#
那么接下来就记录一下在 CentOS 7中如何安装思源黑体字体。
上传字体文件到服务器上
[root@w183 chinese]# ll total 57136 -rw-r--r-- 1 root root 8608184 Jun 11 11:22 SourceHanSansCN-Bold.otf -rw-r--r-- 1 root root 7704352 Jun 11 11:22 SourceHanSansCN-ExtraLight.otf -rw-r--r-- 1 root root 8785564 Jun 11 11:22 SourceHanSansCN-Heavy.otf -rw-r--r-- 1 root root 8297476 Jun 11 11:22 SourceHanSansCN-Light.otf -rw-r--r-- 1 root root 8390148 Jun 11 11:22 SourceHanSansCN-Medium.otf -rw-r--r-- 1 root root 8344108 Jun 11 11:22 SourceHanSansCN-Normal.otf -rw-r--r-- 1 root root 8364840 Jun 11 11:22 SourceHanSansCN-Regular.otf
添加中文字体
首先在/usr/shared/fonts目录下新建一个目录chinese
[root@w183 chinese]#mkdir -p /usr/share/fonts/chinese
将上传的字体文件cp至/usr/shared/fonts/chinese目录下
[root@w183 chinese]#cp SourceHanSansCN* /usr/share/fonts/chinese/
修改chinese目录的权限
[root@w183 chinese]#chown -R root:root /usr/share/fonts/chinese
修改字体配置文件
[root@w183 chinese]#vi /etc/fonts/fonts.conf <!-- Font directory list 字体目录列表 --> <dir>/usr/share/fonts</dir> <dir>/usr/share/fonts/chinese</dir> <!--把我们添加的中文字体位置加进去--> <dir>/usr/share/X11/fonts/Type1</dir> <dir>/usr/share/X11/fonts/TTF</dir> <dir>/usr/local/share/fonts</dir> <dir prefix="xdg">fonts</dir> <!-- the following element will be removed in the future --> <dir>~/.fonts</dir>
输入:wq保存退出,最后刷新内存中的字体缓存
[root@w183 chinese]#fc-cache
通过fc-list看一下字体列表
[root@w183 chinese]# fc-list :lang=zh /usr/share/fonts/chinese/SourceHanSansCN-Medium.otf: Source Han Sans CN Medium,思源黑体 CN,Source Han Sans CN:style=Regular,Medium /usr/share/fonts/chinese/SourceHanSansCN-ExtraLight.otf: Source Han Sans CN ExtraLight,思源黑体 CN,Source Han Sans CN:style=Regular,ExtraLight /usr/share/fonts/chinese/SourceHanSansCN-Bold.otf: Source Han Sans CN,Source Han Sans CN Bold:style=Bold /usr/share/fonts/chinese/SourceHanSansCN-Normal.otf: Source Han Sans CN Normal,思源黑体 CN,Source Han Sans CN:style=Regular,Normal /usr/share/fonts/chinese/SourceHanSansCN-Regular.otf: Source Han Sans CN,Source Han Sans CN Regular:style=Regular /usr/share/fonts/chinese/SourceHanSansCN-Light.otf: Source Han Sans CN Light,思源黑体 CN,Source Han Sans CN:style=Regular,Light /usr/share/fonts/chinese/SourceHanSansCN-Heavy.otf: Source Han Sans CN Heavy,思源黑体 CN,Source Han Sans CN:style=Bold,Heavy
可以看到已经成功安装上了中文字体,至此安装过程就全部结束,再次重新生成pdf可以发现中文样式和内容均已可以正常显示了。
总结
简单记录一下在CentOS 7中安装中文字体的问题,希望对遇到同样问题的同学有所帮助,The End。