最近用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。

 

版权声明:本文为xzlive原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xzlive/p/14874560.html