32

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

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

因此,如果网站是这样的:

你好世界!

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

在此处输入图像描述

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

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

我该如何解决这个问题?

谢谢!

4

10 回答 10

56

我有同样的问题。

安装 urw-fonts 包为我解决了这个问题:

yum 安装 urw-fonts

于 2013-04-16T09:22:12.450 回答
13

我对日文字体也有类似的问题。(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>

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

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

陷阱:

  • 如果您没有收到任何字符(空格),则您的字体缓存可能已过时。尝试fc-cache -vf重新生成它。

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

于 2013-08-07T10:35:32.300 回答
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

操作系统是 Ubuntu 12.04 LTS

于 2014-08-08T03:38:33.110 回答
4

我在亚马逊 ec2 上遇到了同样的问题,我通过以下方式解决了它:

yum install cjkuni-ukai-fonts 
于 2013-12-23T01:44:16.200 回答
2

您也可以尝试安装依赖项 - FontConfig & FreeType

yum install fontconfig
yum install freetype*
于 2013-08-10T07:44:53.507 回答
0

您可以使用命令行参数运行脚本:

phanthomjs --output-encoding=cp866 [params] [filename]
于 2015-08-27T13:35:53.507 回答
0

我在使用阿拉伯字体时遇到了同样的问题。这就是我所做的。

yum groupinstall 'Arabic Support'.

安装阿拉伯语支持为我解决了这个问题。

于 2016-01-06T12:04:33.023 回答
0

试试这个中文。

yum install bitmap-fonts bitmap-fonts-cjk
于 2016-05-30T04:17:38.227 回答
0

保留 /etc/fonts/fonts.conf 文件。上面的例子是只制作日语作品

yum install -y ipa-gothic-fonts.noarch ipa-mincho-fonts.noarch cjkuni-ukai-fonts.noarch bitmap-fonts bitmap-fonts-cjk urw-fonts fontconfig freetype*

yum groupinstall -y 'Korean Support' 'Chinese Support' 'Japanese Support' 'Kannada Support' 'Hindi Support' 'Arabic Support'

fc缓存-vf

于 2016-07-06T11:04:04.607 回答
0

向您的 HTML 部分添加样式部分,如下所示:

<style type="text/css">
@font-face
{
    font-family:MyFont;
    src: url('MyFont.ttf') format('truetype');
}

#barcodefont
{
    font-family:MyFont;
    font-size: 42px;
    color:black;
}
</style>

然后要在主 HTML 代码中使用字体,请执行以下操作:

<div id="MyFont">Your text using MyFont</div>

为此,您的 HTML 文件和 MyFont.ttf 文件都必须位于您正在进行转换的 PhantomJS 目录中。

于 2018-10-24T23:56:15.853 回答