phantomjs屏幕截图字体丢失,用方框代替渲染[英] phantomjs screenshot font missing, boxes rendered instead

问题描述

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

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

所以如果网站是这样的:

你好,世界!

网站截图如下:

在此处输入图片描述

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

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

我该如何解决这个问题?

谢谢!

推荐答案

我在使用日文字体时遇到了类似的问题.(PhantomJS 1.9.1,Amazon EC2 上的 Redhat)

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

我是如何解决的:

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

(使用 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>

6) 使用 fc-cache -vf

刷新字体缓存

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

陷阱:

  • 如果您收到 no 个字符(空格),则您的字体缓存可能已过期.尝试 fc-cache -vf 重新生成它.

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

本文地址:https://www.itbaoku.cn/post/1739822.html