问题

phantomjs或casperjs截图,中文不显示,或显示大小有问题

原因

  • 中文不显示:没有安装中文字体
  • 显示大小不正确:安装的字体不对,网上一通乱抄yum install bitmap-fonts bitmap-fonts-cjk这种方式解决的会有这种问题

解决办法

定位到问题后就比较好解决了,先确定目标网站的font-family使用的是哪一种,再去寻找相应的ttf字体格式即可

以常用的web字体微软雅黑为例,先从windows目录C:\Windows\Fonts拷贝出来以下文件:

msyh.ttc
msyhbd.ttc

注意微软雅黑字体需要在资源管理器搜索中文名才能找到,但拷贝出来的名称是msyh*.ttc,bd是粗体

需要将ttc转换为ttf格式,打开https://transfonter.org/ttc-unpack网站进行格式转换(只需要转换出来的第一个),最终得到2个ttf文件(也可以在https://github.com/hisune/attachment/tree/master/fonts这里找到),在服务器执行:

cd /usr/share/fonts
mkdir custom
cd custom
rz
mkfontscale
mkfontdir
fc-cache
# 查看所有中文字体
fc-list :lang=zh-cn

如果您觉得您在我这里学到了新姿势,博主支持转载,姿势本身就是用来相互学习的。同时,本站文章如未注明均为 hisune 原创 请尊重劳动成果 转载请注明 转自: phantomjs或casperjs截图,中文不显示,或显示大小有问题 - hisune.com