web-dev-qa-db-fra.com

la police de capture d'écran de Phantomj est manquante, les cases sont rendues à la place

J'utilise PhantomJs 1.8.1 sur Centos 6.3 pour des tests automatisés de l'interface utilisateur. Lorsqu'un test échoue, les captures d'écran sont enregistrées dans le système de fichiers. 

Mon problème est que même si les captures d'écran sont enregistrées, elles ne contiennent pas de polices lisibles. 

Donc, si le site Web se lit comme ceci:

Bonjour le monde!

la capture d'écran du site ressemblera à ceci: 

enter image description here

Ainsi, au lieu des lettres, il restitue et enregistre de petites cases.

Le système est centos 6.3 . Freetype et Fontconfig sont également installés. 

Comment pourrais-je résoudre ce problème?

THX!

32
nemoo

J'ai eu un problème similaire avec les polices japonaises. (PhantomJS 1.9.1, Redhat sur Amazon EC2)

Les caractères anglais se sont bien comportés, mais les caractères japonais ont été rendus sous forme de boîtes.

Comment j'ai résolu le problème:

1) Installation des polices IPA (japonaises) (Mincho et Gothic) avec yum install

(Utilisez yum list pour vérifier les noms exacts du paquet.)

2) Les fichiers IPA .ttf ont été installés pour:

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

3) Déplacez les deux fichiers .ttf téléchargés dans ce répertoire: (Créez-le)

  • /usr/share/fonts/ipa/

4) Faites une sauvegarde de /etc/fonts/fonts.conf

5) Éditez le /etc/fonts/fonts.conf original et remplissez-le avec ceci:

<?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) Actualisez votre cache de polices avec fc-cache -vf

7) Profitez de vos nouvelles polices de travail.

Gotchas:

  • Si vous obtenez no caractères (espace vide), votre cache de polices est probablement obsolète .Essayez fc-cache -vf pour le régénérer.

  • La version 1.9.1 contient un correctif pour les caractères japonais/chinois/coréen. Pas sûr que ça fasse une différence, mais ça vaut probablement la peine de passer de 1.9.0. 

11
Jonathan Waller

J'ai eu le même problème.

L'installation du paquetage urw-fonts l'a résolu pour moi:

miam installer urw-fonts

56
Michael

Pour la police chinoise, je l’ai résolu en procédant comme suit:

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

OS est Ubuntu 12.04 LTS

6
ryancheung

J'ai le même problème sur Amazon ec2 Je le fixe comme suit:

yum install cjkuni-ukai-fonts 
4
NovemberEleven

Aussi, vous pouvez essayer d’installer des dépendances - FontConfig & FreeType

yum install fontconfig
yum install freetype*
2
boksiora

Vous pouvez exécuter le script avec des paramètres de ligne de commande:

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

Ajouter une section de style à votre section 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>

Ensuite, pour utiliser la police dans le code HTML principal, procédez comme suit:

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

Pour que cela fonctionne, votre fichier HTML et votre fichier MyFont.ttf doivent tous deux se trouver dans le répertoire PhantomJS dans lequel vous effectuez la conversion.

0
Craig Jones

J'ai rencontré le même problème avec les polices arabes. C'est ce que j'ai fait.

yum groupinstall 'Arabic Support'.

L'installation de l'assistance en arabe a résolu le problème pour moi.

0
pankaj

laissez le fichier /etc/fonts/fonts.conf seul. l'exemple ci-dessus ne fait que travailler en japonais

miam installer -y ipa-gothic-fonts.noarch ipa-mincho-fonts.noarch cjkuni-ukai-fonts.noarch bitmap-fonts bitmap-fonts-cjk urw-fonts

yum groupinstall -y 'Support coréen' 'Support chinois' 'Support japonais' 'Support kannada' 'Support hindi' 'Support arabe'

fc-cache -vf

0
dappa_don

Essayez ceci pour le chinois.

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