demolog

備忘録. 雑なあまりにも雑な

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

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

はじめに

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

コード

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

実行結果

f:id:skit_n:20180422212244p:plain

対応方法

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

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

実行結果(再実行)

f:id:skit_n:20180422212315p:plain

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