现在的项目中,html转pdf的时候,都是再用wkhtmltopdf。
大多数时候对字体并没有要求,默认就可以。今天转换html的时候,标题需要是楷体,css中设置
font-family:"楷体";
标题会变成乱码,更改成“楷体”的英文名称
font-family:"KaiTi"
标题不再是乱码,但并不显示楷体。【以上两种写法在浏览器中效果是一样的】
因为不设置“楷体”的话是显示正常的,所以并不是如网上其他人所说的中文支持没有安装。可能只是没有楷体这个字体。
我理解 猜测 瞎猜的是,wkhtmltopdf并不识别font-family:"楷体"
中的“楷体”【所以乱码?】,需要写成“KaiTi”,但是因为系统中目前并不存在楷体字体,所以显示为默认字体样式。
所以,百度/谷歌 搜索 “centos如何安装字体”后,开始安装。参考文章 www.linuxidc.com/Linux/2016-09/135548.htm 。
安装字体
- fc-list //查看字体列表,确实发现并没有楷体
- yum -y install fontconfig //我的机器已经安装过
- 查看 /usr/shared/ 下有 fonts、fontconfig两个目录
- 将window下的字体复制出来,在C:\Windows\Fonts目录下。
我复制了两个字体,“楷体 常规”,“宋体 常规”,复制到桌面后,文件名分别为“simkai.ttf”、“simsun.ttf” - 在 /usr/shared/fonts 下新建目录chinese,将两个字体文件导入
- yum -y install ttmkfdir //这个也是已经安装过了
- 执行命令 ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir
- 配置文件
vim /etc/fonts/fonts.conf
......
<!--Font directory list-->
<dir>/usr/share/fonts</dir>
<!--加入一行-->
<dir>/usr/share/fonts/chinese</dir>
//对应上面新建的目录,【看样子并不需要新建目录就可以?】
......
- 刷新字体缓存
fc-cache
- 此时
fc-list
即可看到楷体的字体信息
楷体,KaiTi:style=Normal,obyčejné ......
此时,font-family:"KaiTi"
,导出的pdf就可以正常显示楷体。