PDF: replace invalid UTF-8 sequences in TCPDF (#61, #8312).

There is no guarantees that database strings are valid UTF-8 in Ruby 1.8 MySQL and SQLite3.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5716 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Toshi MARUYAMA 2011-05-09 06:46:21 +00:00
parent e25dd95389
commit 48a6fb45a7
1 changed files with 14 additions and 2 deletions

View File

@ -35,6 +35,9 @@ module Redmine
def initialize(lang) def initialize(lang)
super() super()
if RUBY_VERSION < '1.9'
@ic = Iconv.new(l(:general_pdf_encoding), 'UTF-8')
end
set_language_if_valid lang set_language_if_valid lang
@font_for_content = 'FreeSans' @font_for_content = 'FreeSans'
@font_for_footer = 'FreeSans' @font_for_footer = 'FreeSans'
@ -67,8 +70,17 @@ module Redmine
end end
end end
alias RDMCell Cell def fix_text_encoding(txt)
alias RDMMultiCell MultiCell RDMPdfEncoding::rdm_pdf_iconv(@ic, txt)
end
def RDMCell(w,h=0,txt='',border=0,ln=0,align='',fill=0,link='')
Cell(w,h,fix_text_encoding(txt),border,ln,align,fill,link)
end
def RDMMultiCell(w,h=0,txt='',border=0,align='',fill=0)
MultiCell(w,h,fix_text_encoding(txt),border,align,fill)
end
def Footer def Footer
SetFont(@font_for_footer, 'I', 8) SetFont(@font_for_footer, 'I', 8)