HOW TO GO

〜昨日の今日とは一味二味違うBlog〜

Redmine BacklogsでストーリーカードをPDF出力する時の文字化けを防ぐ方法

Redmine Backlogs(Plug-in)」を使っています。

アジャイル開発でよく使われる便利なツールです。
僕はいつもRedmineのような電子ツールとアナログツール(壁に付箋を張るカンバン)を併用するスタイルを取るのですが、いつもタスクの作成がちょっと面倒なんです。
タスクをチームで作成してRedmineに登録し、付箋に手書きでタスクカードを作るという2度手間。

この「Redmine Backlogs」にはストーリーカードをPDFで出力するという機能があります。
ただ普通にインストールしただけではPDF出力で日本語が文字化けしてしまうんですよね。
諦めかけたんですが、なんとか解決できたので手順をメモしておきます。

環境

インストール

インストール方法は割愛。以下のサイトが超参考になりました。
Redmineはハマると面倒っぽいですね。

文字化け対応

「なんで日本語対応してへんねん…」とTwitterで愚痴ってたら救いの手が!
インターネットには神様がいました。どこの誰だかわかりませんがありがとうございました。

というわけで解決しました。
以下は手順。

フォントを取得

IPAのサイトからダウンロードしました。
http://ipafont.ipa.go.jp/
IPAexfont00201.zip

フォントファイル(.ttf)をRedmine配下に置く

{Redmineのインストールフォルダ}/htdocs/plugins/redmine_backlogs/lib/ttf/
ipaexg.ttf を置きました。

フォント指定方法の変更

これはredmineのソースを直接変更します。

{Redmineのインストールフォルダ}/htdocs/plugins/redmine_backlogs/lib/
backlogs_printable_cards.rb の430行目あたり。

※Before

        @pdf.font_families.update(
          "DejaVuSans" => {
            :bold         => "#{fontdir}/DejaVuSans-Bold.ttf",
            :italic       => "#{fontdir}/DejaVuSans-Oblique.ttf",
            :bold_italic  => "#{fontdir}/DejaVuSans-BoldOblique.ttf",
            :normal       => "#{fontdir}/DejaVuSans.ttf"
          }
        )


※After(元の部分はコメントアウトしてます)

        @pdf.font_families.update(
          "DejaVuSans" => {
            #:bold         => "#{fontdir}/DejaVuSans-Bold.ttf",
            #:italic       => "#{fontdir}/DejaVuSans-Oblique.ttf",
            #:bold_italic  => "#{fontdir}/DejaVuSans-BoldOblique.ttf",
            #:normal       => "#{fontdir}/DejaVuSans.ttf"
            :bold         => "#{fontdir}/ipaexg.ttf",
            :italic       => "#{fontdir}/ipaexg.ttf",
            :bold_italic  => "#{fontdir}/ipaexge.ttf",
            :normal       => "#{fontdir}/ipaexg.ttf"
          }
        )

これでOKです。

文字化けの原因はどうやらPDF出力の機能で使用しているフォントが日本語に対応していないためのようです。
指定しているフォントを日本語対応しているものに差し替えました。
(なんかその場しのぎの対応ですが…)