wkhtmltopdf无法正常显示楷体字体

现在的项目中,html转pdf的时候,都是再用wkhtmltopdf。
大多数时候对字体并没有要求,默认就可以。今天转换html的时候,标题需要是楷体,css中设置

font-family:"楷体";

标题会变成乱码,更改成“楷体”的英文名称

font-family:"KaiTi"

标题不再是乱码,但并不显示楷体。【以上两种写法在浏览器中效果是一样的】

因为不设置“楷体”的话是显示正常的,所以并不是如网上其他人所说的中文支持没有安装。可能只是没有楷体这个字体。

理解 猜测 瞎猜的是,wkhtmltopdf并不识别font-family:"楷体"中的“楷体”【所以乱码?】,需要写成“KaiTi”,但是因为系统中目前并不存在楷体字体,所以显示为默认字体样式。

所以,百度/谷歌 搜索 “centos如何安装字体”后,开始安装。参考文章 www.linuxidc.com/Linux/2016-09/135548.htm 。

安装字体

  1. fc-list //查看字体列表,确实发现并没有楷体
  2. yum -y install fontconfig //我的机器已经安装过
  3. 查看 /usr/shared/ 下有 fonts、fontconfig两个目录
  4. 将window下的字体复制出来,在C:\Windows\Fonts目录下。
    我复制了两个字体,“楷体 常规”,“宋体 常规”,复制到桌面后,文件名分别为“simkai.ttf”、“simsun.ttf”
  5. 在 /usr/shared/fonts 下新建目录chinese,将两个字体文件导入
  6. yum -y install ttmkfdir //这个也是已经安装过了
  7. 执行命令 ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir
  8. 配置文件
vim /etc/fonts/fonts.conf
......
<!--Font directory list-->
<dir>/usr/share/fonts</dir>
<!--加入一行-->
<dir>/usr/share/fonts/chinese</dir>
//对应上面新建的目录,【看样子并不需要新建目录就可以?】
......
  1. 刷新字体缓存 fc-cache
  2. 此时fc-list即可看到楷体的字体信息
    楷体,KaiTi:style=Normal,obyčejné ......

此时,font-family:"KaiTi",导出的pdf就可以正常显示楷体。

发表评论

电子邮件地址不会被公开。 必填项已用*标注