torutkのブログ

ソフトウェア・エンジニアのブログ

RedmineでPDFの文字化けを解消

以下の組み合わせでは、Redmine.JPサイトのFAQRedmine.JP | PDFおよびCSVの文字化けを回避するにある設定をしても、日本語の文字化けが解消されません。

解決策は、Rubyのバージョンを上げることです。もともとRedmine 0.8でサポートされるRubyは1.8.6/1.8.7なので、1.8.5では不具合があるかもしれません。

CentOS 5.3でRubyをバージョンアップする

Redmineは、Apache上で動かしたいので、野良ビルドしたRubyをむりくりPATHをいじりまわして使うのも避けたく、RPMパッケージとして作成して入れることにしました。

以下ページに、Fedoraの先端からソースRPMパッケージを持ってきて、CentOS 5.3でビルドできるよう修正してRPMパッケージを作成する手順を書きました。

CentOS 5用バイナリパッケージ

RPMを更新してRedmineをとりあえずWEBrickで動かして確認したところ、PDF出力の日本語は化けずに表示されていました。

rubygemsなどは、EPELのものを持ってきているのですが、Rubyのバージョンを1.8.7にしてもRedmineに関しては動いています。

追記)一部文字化けが発生

チケットによってはPDF出力の際、一部文字化けが発生します。パターンが見えていませんが、UTF-8の文字列がそのままPDFに出されているように見えます。改行の次に発生するようです。

redmine PDFで調べまわると、0.8.xでの修正方法としては、以下ページに記載の修正がよさそうに思いました。
http://www.maruhisa.org/2009/07/redmine_pdf_problem/

このページの修正を、lib/redmine/export/pdf.rbに反映しましたが、チケットのPDFリンクをクリックするとapache内部エラー(500)になり、redmineのログを見ると以下エラーが発生していました。

pdf.rb NoMethodError (private method `gsub' called for nil:NilClass)

そこで、pdf.rbの修正のうち、gsub部分を以下に変えてみたところ、うまくいっているようです。

txt.gsub(/\\/, "\\\\\\\\") if txt

なお、上記ページの修正(pdf.rb)を、Ruby-1.8.5のマシンに適用すると、改行直前の1文字が場合によって豆腐になりました。

Redmine雑多

Redmineのインストールに別途Railsを入れる必要なし

RedmineRailsで作成されています。Googleってみると、Redmineのインストールにあたって、わざわざRailsをインストールする手順を見かけますが、Redmine自体にRailsが含まれているので、Redmineを動かすだけならRailsのインストールは不要でした。

バージョン管理ツールの連携

1つのプロジェクトで1つのバージョン管理パス指定しかできないのが不便です。まあ、Bazaar連携が標準で入っているのはうれしいですが・・・。

チケットのTarget versionを日本語にしたい

プロジェクトにバージョンを定義すると、チケットに"Target version"欄が表示されるようになります。他の欄は日本語なのに、ここは英語のままです。探してみたところ、lang/ja.ymlファイルに以下記述がありました。

field_fixed_version: Target version

ここを、日本語名称に変えれば反映されます。しかし、適切な日本語はなんだろうか?「対応予定バージョン」かな?