缺少phantomjs屏幕截图字体,而是渲染框

缺少phantomjs屏幕截图字体,而是渲染框,phantomjs,Phantomjs,我正在Centos 6.3上使用PhantomJs 1.8.1进行自动化ui测试。当测试失败时,屏幕截图会保存到文件系统中 我的问题是,即使保存了屏幕截图,它们也不包含可读的字体 因此,如果网站的内容如下: <style type="text/css"> @font-face { font-family:MyFont; src: url('MyFont.ttf') format('truetype'); } #barcodefont { font-famil

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

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

因此,如果网站的内容如下:

<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>
你好,世界

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

因此,它渲染并保存小方框,而不是实际的字母

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

我怎样才能着手解决这个问题呢


谢谢

我也有同样的问题

安装urw字体软件包为我解决了这个问题:

yum安装urw字体


我对日文字体也有类似的问题。(PhantomJS 1.9.1,亚马逊EC2上的Redhat)

英文字符显示得很好,但日文字符显示为方框

我是如何修复的: 1) 使用
yum-install
安装(日语)IPA字体(Mincho和哥特式)

(使用
yum-list
检查确切的软件包名称。)

2) IPA
.ttf
文件已安装到:

  • /usr/share/font/IPA-Gothic/
  • /usr/share/font/IPA Mincho/
3) 将两个下载的
.ttf
文件移动到此目录:(创建它)

  • /usr/share/font/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>

/usr/share/fonts/ipa
/var/cache/fontconfig
~/.fontconfig
衬线
伊帕普明乔
无衬线
伊帕普哥特式
单空间
伊帕哥特式
6) 使用
fc cache-vf刷新字体缓存

7) 享受你的新工作字体

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

  • 在1.9.1版本中,对日语/汉语/韩语字符进行了修复。不确定它是否会有所不同,但可能值得从1.9.0升级


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

yum install fontconfig
yum install freetype*

我在AmazonEC2上也有同样的问题 我通过以下方式解决它:

yum install cjkuni-ukai-fonts 

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

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

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

phanthomjs --output-encoding=cp866 [params] [filename]

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

yum groupinstall 'Arabic Support'.
安装阿拉伯语支持为我解决了这个问题。

用中文试试这个

yum install bitmap-fonts bitmap-fonts-cjk

不要使用/etc/fonts/fonts.conf文件。上面的例子是只让日本人工作

yum安装-y ipa-gothic-fonts.noarch ipa-mincho-fonts.noarch cjkuni-ukai-fonts.noarch位图字体位图字体cjk urw字体fontconfig freetype*

yum groupinstall-y“韩语支持”“中文支持”“日语支持”“卡纳达语支持”“印地语支持”“阿拉伯语支持”


fc cache-vf

将样式部分添加到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>

@字体
{
字体系列:MyFont;
src:url('MyFont.ttf')格式('truetype');
}
#条形码字体
{
字体系列:MyFont;
字体大小:42px;
颜色:黑色;
}
然后,要在主HTML代码中使用字体,请执行以下操作:

<div id="MyFont">Your text using MyFont</div>
使用MyFont编辑文本

要使其正常工作,您的HTML文件和MyFont.ttf文件都必须位于您正在进行转换的PhantomJS目录中。

您是否针对一些不同的站点测试过PhantomJS?我有一个类似的问题,它似乎是特定于项目的。@ArtjomB。有道理,不需要casperJStag@nemoo抱歉,删除了我之前的评论。这是普通幻影的一个问题。其他框架可能会使用phantomjs,但我们无法将它们全部添加到这个问题中,因为这与这些框架无关:[selenium]、[capybara]、[casperjs]、[噩梦],…在CentOS 6.4上超级工作这解决了我大多数字体的问题,但仍然看到一些字体混乱,这解决了我在CentOS 6.2上的问题我认为这是云服务的一个常见问题,我在vultr上。是的,这项工作在CentOS 6.5上对我有效