1. Qiita
  2. 投稿
  3. PhantomJS

CentOSからPhantomJSを実行すると画面キャプチャの日本語が表示されなくなる問題

  • 22
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

CentOSからPhantomJSを実行すると画面キャプチャの日本語が表示されなくなる問題

はじめに

PhantomJSをCentOS(6.5)から実行すると、保存した画面キャプチャの日本語が文字化けする問題があった。

コード

test.js
var page = require('webpage').create();

page.open('https://www.google.co.jp/intl/ja/about/', function() {
  window.setTimeout(function() {
    page.render('test.png');
    phantom.exit();
  }, 200);
});

実行コマンド

phantomjs test.js

実行結果

before.png

対応方法

日本語フォントが入ってないか、フォント設定が上手くいってなかったので設定する。

yumから日本語フォントをインストール

sudo yum groupinstall "Japanese Support"

フォント設定ファイルを修正

sudo cp /etc/fonts/fonts.conf /etc/fonts/fonts.conf.original
sudo vim /etc/fonts/fonts.conf

「Font directory list」から/usr/share/fonts以外をコメントアウト。
すべて読み込むと文字化けされていた。

<!-- Font directory list -->

        <dir>/usr/share/fonts</dir>
<!--
        <dir>/usr/share/X11/fonts/Type1</dir> <dir>/usr/share/X11/fonts/TTF</dir> <dir>/usr/local/share/fonts</dir>
        <dir>~/.fonts</dir>
-->

フォントキャッシュ更新

sudo fc-cache -fv

実行結果(再実行)

after.png

無事に日本語フォントが読み込まれた。