ti-enxame.com

phantomjs screenshot font missing, boxes rendered instead

Eu estou usando o PhantomJs 1.8.1 no Centos 6.3 para testes automatizados de interface do usuário. Quando um teste falha, as capturas de tela são salvas no sistema de arquivos. 

Meu problema é que, embora as capturas de tela sejam salvas, elas não contêm fontes legíveis. 

Então, se o site for assim:

Olá Mundo!

a captura de tela do site ficará assim: 

enter image description here

Então, ao invés das letras reais, ele renderiza e salva pequenas caixas.

O sistema é centos 6.3. Freetype e Fontconfig também são instalados. 

Como eu poderia consertar isso?

THX!

32
nemoo

Eu tive um problema semelhante com fontes japonesas. (PhantomJS 1.9.1, Redhat no Amazon EC2)

Os caracteres ingleses apareceram bem, mas os caracteres japoneses foram renderizados como caixas.

Como eu consertei:

1) Instalou as fontes IPA (japonesas) (Mincho e Gothic) usando yum install

(Use yum list para verificar os nomes exatos dos pacotes).

2) Os arquivos .ttf do IPA foram instalados para:

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

3) Mova os dois arquivos .ttf baixados para este diretório: (Create it)

  • /usr/share/fonts/ipa/

4) Faça um backup de /etc/fonts/fonts.conf

5) Edite o /etc/fonts/fonts.conf original e preencha com isto:

<?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) Atualize seu cache de fontes com fc-cache -vf

7) Aproveite suas novas fontes de trabalho.

Gotchas:

  • Se você está recebendo não caracteres (espaço em branco), seu cache de fonte está provavelmente desatualizado. Tente fc-cache -vf para regenerá-lo.

  • Há uma correção para caracteres japoneses/chineses/coreanos na versão 1.9.1. Não tenho certeza se isso faz diferença, mas provavelmente vale a pena atualizar da versão 1.9.0. 

11
Jonathan Waller

Eu tive o mesmo problema.

Instalar o pacote urw-fonts resolveu para mim:

yum install urw-fonts

56
Michael

Para fonte chinesa, resolvi pelos seguintes passos:

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

SO é o Ubuntu 12.04 LTS

6
ryancheung

Eu tenho o mesmo problema na Amazon ec2 Eu corrigi-lo por isso:

yum install cjkuni-ukai-fonts 
4
NovemberEleven

Também você pode tentar instalar dependências - FontConfig & FreeType

yum install fontconfig
yum install freetype*
2
boksiora

Você pode executar o script com parâmetros de linha de comando:

phanthomjs --output-encoding=cp866 [params] [filename]
0
Adrián Bolonio

Adicione uma seção de estilo à sua seção HTML Algo como isto:

<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>

Então, para usar a fonte no código HTML principal, faça o seguinte:

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

Para que isso funcione, seu arquivo HTML e seu arquivo MyFont.ttf precisam estar no diretório PhantomJS em que você está fazendo a conversão.

0
Craig Jones

Eu enfrentei o mesmo problema com fontes árabes. Isso é o que eu fiz.

yum groupinstall 'Arabic Support'.

Instalar o Suporte Árabe resolveu isso para mim.

0
pankaj

deixe o arquivo /etc/fonts/fonts.conf sozinho. o exemplo acima está fazendo apenas o trabalho japonês

yum instalar -y ipa-gótico-fontes.noarca ipa-mincho-fonts.noarch cjkuni-ukai-fonts.noarch bitmap-fontes bitmap-fontes-cjk urw-fontes fontconfig freetype *

yum groupinstall -y 'Suporte Coreano' 'Suporte Chinês' 'Suporte Japonês' 'Suporte a Kannada' 'Suporte Hindi' 'Suporte Árabe'

fc-cache -vf

0
dappa_don

Tente isso para o chinês.

yum install bitmap-fonts bitmap-fonts-cjk
0
Lellansin