phantomjs captura de pantalla fuente que falta, cajas renderizadas en su lugar


Estoy usando PhantomJS 1.8.1 en Centos 6.3 para pruebas de interfaz de usuario automatizadas. Cuando una prueba falla, las capturas de pantalla se guardan en el sistema de archivos.

Mi problema es que a pesar de que las capturas de pantalla se guardan, no contienen fuentes legibles.

Así que si el sitio web se lee así:

¡Hola, Mundo!

La captura de pantalla del sitio se verá así:

introduzca la descripción de la imagen aquí

Entonces, en lugar de las letras reales, renderiza y guarda cajitas.

El sistema es centos 6.3. Freetype y Fontconfig también están instalados.

¿Cómo podría arreglar esto?

Thx!

 32
Author: Artjom B., 2013-02-22

9 answers

Tuve un problema similar con las fuentes japonesas. (PhantomJS 1.9.1, Redhat en Amazon EC2)

Los caracteres ingleses aparecieron bien, pero los caracteres japoneses se renderizaron como cajas.

Cómo lo arreglé:{[17]]}

1) Instaló las fuentes IPA (japonesas) (Mincho y Góticas) usando yum install.

(Use yum list para verificar los nombres exactos de los paquetes.)

2) Los archivos IPA .ttf se instalaron para:

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

3) Mueva los dos archivos descargados .ttf a este directorio: (Crearlo)

  • /usr/share/fonts/ipa/

4) Hacer una copia de seguridad de /etc/fonts/fonts.conf

5) Edita el original /etc/fonts/fonts.conf y llénalo con esto:

<?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) Actualice su caché de fuentes con fc-cache -vf

7) Disfrute de sus nuevas fuentes de trabajo.

Gotchas:

  • Si no tiene caracteres (espacio en blanco), su caché de fuentes probablemente esté desactualizada. Intenta fc-cache -vf regenerar se.

  • Hay una solución para los caracteres japoneses/chinos/coreanos en la versión 1.9.1. No estoy seguro de si hace una diferencia, pero probablemente valga la pena actualizar desde la versión 1.9.0.

 11
Author: Jonathan Waller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-07 10:35:32

Yo tenía el mismo problema.

Instalando el paquete urw-fonts lo resolví:

Yum install urw-fonts

 56
Author: Michael,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-16 09:22:12

Para la fuente china, lo resolví siguiendo los siguientes pasos:

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

El sistema operativo es Ubuntu 12.04 LTS

 6
Author: ryancheung,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-08 03:38:33

Tengo el mismo problema en amazon ec2 Lo arreglo así:

yum install cjkuni-ukai-fonts 
 4
Author: NovemberEleven,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-23 02:05:48

También puede intentar instalar dependencias-FontConfig & FreeType

yum install fontconfig
yum install freetype*
 2
Author: boksiora,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-10 07:44:53

Puede ejecutar el script con los parámetros de la línea de comandos:

phanthomjs --output-encoding=cp866 [params] [filename]
 0
Author: Adrián Bolonio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-27 13:35:53

Me enfrenté al mismo problema con las fuentes árabes. Esto es lo que hice.

yum groupinstall 'Arabic Support'.

Instalar el soporte árabe lo resolvió para mí.

 0
Author: pankaj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-06 12:12:34

Prueba esto para chino.

yum install bitmap-fonts bitmap-fonts-cjk
 0
Author: Lellansin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-30 04:17:38

Deje el /etc/fonts/fonts.archivo conf solo. el ejemplo anterior está haciendo que solo el japonés funcione

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

Yum groupinstall-y 'Soporte Coreano ''Soporte Chino' 'Soporte Japonés' 'Soporte Kannada' 'Soporte Hindi' 'Soporte Árabe'

Fc-cache-vf

 0
Author: dappa_don,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-06 11:04:04