我在Centos 6.3上使用PhantomJs 1.8.1进行自动ui测试。测试失败时,屏幕截图会保存到文件系统中。
我的问题是即使屏幕截图已保存,它们也不包含可读字体。
所以如果网站的内容如下:
你好,世界!
该网站的屏幕截图如下所示:
因此,它不是实际的字母,而是渲染和保存小盒子。
系统是6.3。 还安装了Freetype和Fontconfig。
我怎么能解决这个问题?
THX!
答案 0 :(得分:56)
我遇到了同样的问题。
安装urw-fonts包解决了它:
yum install urw-fonts
答案 1 :(得分:11)
我的日文字体有类似的问题。 (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)享受新的工作字体。
如果您获得无字符(空格),则字体缓存可能已过期。
请尝试fc-cache -vf
重新生成它。
1.9.1版本中有日文/中文/韩文字符的修复程序。不确定它是否有所作为,但可能值得从1.9.0升级。
答案 2 :(得分: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
答案 3 :(得分:4)
我在亚马逊ec2上遇到同样的问题 我解决了这个问题:
yum install cjkuni-ukai-fonts
答案 4 :(得分:2)
您也可以尝试安装依赖项 - FontConfig&amp; FreeType的
yum install fontconfig
yum install freetype*
答案 5 :(得分:0)
您可以使用命令行参数运行脚本:
phanthomjs --output-encoding=cp866 [params] [filename]
答案 6 :(得分:0)
我遇到了与阿拉伯字体相同的问题。这就是我所做的。
yum groupinstall 'Arabic Support'.
安装阿拉伯语支持解决了它。
答案 7 :(得分:0)
试试这个中文。
long[] lBytL = new long[] { 1L, 256L, 65536L, 16777216L, 4294967296L, 1099511627776L, 281474976710656L, 72057594037927936L };
boolean IsRng = false;
for(int m = (lBytL.length - 1); (m > -1 ); --m){
lPlc = (lVal/lBytL[m]);
iPlcVal[m] = (int)lPlc;
if(!IsRng && (lPlc > 0)){ iRgnIx = m; IsRng = true; }
lVal -= (lVal/lBytL[m])*lBytL[m];
}// m
答案 8 :(得分: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'韩语支持''中文支持''日语支持''卡纳达语支持''印地语支持''阿拉伯语支持'
fc-cache -vf
答案 9 :(得分: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目录中。