Подтвердить что ты не робот

Отсутствует шрифт скриншота phantomjs, вместо этого отображаются коробки

Я использую PhantomJs 1.8.1 на Centos 6.3 для автоматизированных тестов ui. Когда тест не удается, скриншоты сохраняются в файловой системе.

Моя проблема в том, что даже если скриншоты сохранены, они не содержат читаемых шрифтов.

Итак, если сайт читается следующим образом:

Привет, мир!

снимок экрана сайта будет выглядеть следующим образом:

enter image description here

Таким образом, вместо фактических букв он отображает и сохраняет небольшие поля.

Система - centos 6.3. Также установлены Freetype и Fontconfig.

Как я могу это исправить?

спасибо!

4b9b3361

Ответ 1

У меня была аналогичная проблема с японскими шрифтами. (PhantomJS 1.9.1, Redhat на Amazon EC2)

Английские персонажи проявили себя хорошо, но японские символы были отображены в виде ящиков.

Как я его исправил:

1) Установили (японские) IPA-шрифты (Mincho и Gothic) с помощью yum install.

(Используйте 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) Наслаждайтесь новыми рабочими шрифтами.

Gotchas:

  • Если вы получаете символы no (пустое пространство), кеш шрифтов, вероятно, устарел. Попробуйте fc-cache -vf восстановить его.

  • Там есть исправление для японских/китайских/корейских символов в версии 1.9.1. Не уверен, что это имеет значение, но, вероятно, стоит перейти с 1.9.0.

Ответ 2

У меня была та же проблема.

Установка пакета urw-fonts решила его для меня:

yum install urw-fonts

Ответ 3

Для китайского шрифта я решил его выполнить следующие действия:

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 - Ubuntu 12.04 LTS

Ответ 4

У меня та же проблема на amazon ec2 Я исправляю это следующим образом:

yum install cjkuni-ukai-fonts 

Ответ 5

Также вы можете попробовать установить взаимозависимости - FontConfig и FreeType

yum install fontconfig
yum install freetype*

Ответ 6

Вы можете запустить script с параметрами командной строки:

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

Ответ 7

Я столкнулся с такой же проблемой с арабскими шрифтами. Это то, что я сделал.

yum groupinstall 'Arabic Support'.

Установка поддержки арабского языка решила его для меня.

Ответ 8

Попробуйте это для китайского языка.

yum install bitmap-fonts bitmap-fonts-cjk

Ответ 9

покинуть файл /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 'Корейская поддержка' 'Поддержка Китая' 'Поддержка Японии' 'Поддержка Kannada' 'Поддержка хинди' 'Арабская поддержка'

fc-cache -vf