phantomjs截图字体缺失,而是呈现的框

nem*_*moo 32 phantomjs

我在Centos 6.3上使用PhantomJs 1.8.1进行自动ui测试.测试失败时,屏幕截图会保存到文件系统中.

我的问题是,即使屏幕截图已保存,它们也不包含可读字体.

所以,如果网站的内容如下:

你好,世界!

该网站的屏幕截图如下所示:

在此输入图像描述

因此,它不是实际的字母,而是渲染和保存小盒子.

该系统是6.3.还安装了Freetype和Fontconfig.

我怎么能解决这个问题呢?

谢谢!

小智 56

我有同样的问题.

安装urw-fonts包解决了它:

yum install urw-fonts

  • 在CentOS 6.4上运行超级 (4认同)

小智 11

我的日文字体有类似的问题.(PhantomJS 1.9.1,Amazon EC2上的Redhat)

英文字符显示正常,但日文字符呈现为框.

我是如何修理它的:

1)使用安装了(日语)IPA字体(Mincho和Gothic)yum install.

(yum list用于检查确切的包名称.)

2)IPA .ttf文件安装到:

  • /usr/share/fonts/IPA-Gothic/
  • /usr/share/fonts/IPA-Mincho/

3)将两个下载的.ttf文件移动到此目录:(创建它)

  • /usr/share/fonts/ipa/

4)备份 /etc/fonts/fonts.conf

5)编辑原稿/etc/fonts/fonts.conf并填写:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <dir>/usr/share/fonts/ipa</dir>
  <cachedir>/var/cache/fontconfig</cachedir>
  <cachedir>~/.fontconfig</cachedir>
  <alias>
    <family>serif</family>
    <prefer>
      <family>IPAP Mincho</family>
    </prefer>
  </alias>
  <alias>
    <family>sans serif</family>
    <prefer>
      <family>IPAP Gothic</family>
    </prefer>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>IPA Gothic</family>
    </prefer>
  </alias>
</fontconfig>
Run Code Online (Sandbox Code Playgroud)

6)刷新你的字体缓存 fc-cache -vf

7)享受你的新工作字体.

陷阱:

  • 如果没有字符(空格),则字体缓存可能已过期.尝试fc-cache -vf重新生成它.

  • 在1.9.1版本中有一个日文/中文/韩文字符的修复程序.不确定它是否有所作为,但可能值得从1.9.0升级.


rya*_*ung 6

对于中文字体,我通过以下步骤解决了它:

sudo apt-get install language-pack-zh-hans
sudo apt-get install ttf-arphic-uming
sudo apt-get install ttf-dejavu ttf-wqy-microhei
sudo fc-cache -f -v
Run Code Online (Sandbox Code Playgroud)

操作系统是Ubuntu 12.04 LTS