FC2ブログ

徒然さめざめ

思ったことを思ったときに思ったように

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

続・何回目? Redmine pdf日本語化hack

まるでいたちごっこ。

以前からの修正点
* tosjis とか toutf8 にバグがあったのでNKF使うようにした。
** 過去にNKFのバグもあったのでこっちも注意だけど。
* Cellに渡す時点でsjis化されてるので余計なコードを走らせないようにした。 #ここがたぶん重要
# 重要と書きながら何やってるのかいまいちわかっていないんだけど。

NKFに-xも必要かなあ?とか思いながら。

Index: lib/redmine/export/pdf.rb
===================================================================
--- lib/redmine/export/pdf.rb (リビジョン 3399)
+++ lib/redmine/export/pdf.rb (作業コピー)
@@ -91,14 +91,16 @@
def Cell(w,h=0,txt='',border=0,ln=0,align='',fill=0,link='')
@ic ||= Iconv.new(l(:general_pdf_encoding), 'UTF-8')
# these quotation marks are not correctly rendered in the pdf
- txt = txt.gsub(/[“�]/, '"') if txt
+ txt = "" if txt.nil?
+# txt = txt.gsub(/[“â€�]/, '"') if txt # ここ!
+
txt = begin
# 0x5c char handling
txtar = txt.split('\\')
txtar << '' if txt[-1] == ?\\
txtar.collect {|x| @ic.iconv(x)}.join('\\').gsub(/\\/, "\\\\\\\\")
rescue
- txt
+ txt.gsub(/\\/, "\\\\\\\\")
end || ''
super w,h,txt,border,ln,align,fill,link
end
@@ -243,7 +245,7 @@
pdf.SetFontStyle('B',9)
pdf.Cell(35,5, custom_value.custom_field.name + ":","L")
pdf.SetFontStyle('',9)
- pdf.MultiCell(155,5, (show_value custom_value),"R")
+ pdf.MultiCell(155,5, NKF.nkf("-W -s -m0", (show_value custom_value)),"R")
end

pdf.SetFontStyle('B',9)
@@ -255,7 +257,7 @@
pdf.SetFontStyle('B',9)
pdf.Cell(35,5, l(:field_description) + ":")
pdf.SetFontStyle('',9)
- pdf.MultiCell(155,5, @issue.description,"BR")
+ pdf.MultiCell(155,5, NKF.nkf("-W -s -m0", @issue.description),"BR")

pdf.Line(pdf.GetX, y0, pdf.GetX, pdf.GetY)
pdf.Line(pdf.GetX, pdf.GetY, 170, pdf.GetY)
@@ -271,7 +273,7 @@
pdf.Ln
unless changeset.comments.blank?
pdf.SetFontStyle('',8)
- pdf.MultiCell(190,5, changeset.comments)
+ pdf.MultiCell(190,5, NKF.nkf("-W -s -m0", changeset.comments))
end
pdf.Ln
end
@@ -291,7 +293,7 @@
end
if journal.notes?
pdf.SetFontStyle('',8)
- pdf.MultiCell(190,5, journal.notes)
+ pdf.MultiCell(190,5, NKF.nkf("-W -s -m0", journal.notes))
end
pdf.Ln
end
スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://fmkt.blog65.fc2.com/tb.php/148-fbf98492
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。