From: Toshi MARUYAMA Date: Mon, 9 May 2011 11:12:27 +0000 (+0000) Subject: PDF: import CJK patches and all languages use TCPDF (#8312). X-Git-Tag: 1.2.0~171 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=29f6dd2a9e770bdc2d9211b42abca85d75d8cc09;p=redmine.git PDF: import CJK patches and all languages use TCPDF (#8312). Contributed Jun NAITOH. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5720 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/lib/redmine/export/pdf.rb b/lib/redmine/export/pdf.rb index 2787f1a6f..177f5c835 100644 --- a/lib/redmine/export/pdf.rb +++ b/lib/redmine/export/pdf.rb @@ -210,11 +210,7 @@ module Redmine # Returns a PDF string of a list of issues def issues_to_pdf(issues, project, query) - if l(:general_pdf_encoding).upcase != 'UTF-8' - pdf = IFPDF.new(current_language) - else - pdf = ITCPDF.new(current_language) - end + pdf = ITCPDF.new(current_language) title = query.new_record? ? l(:label_issue_plural) : query.name title = "#{project} - #{title}" if project pdf.SetTitle(title) @@ -358,11 +354,7 @@ module Redmine # Returns a PDF string of a single issue def issue_to_pdf(issue) - if l(:general_pdf_encoding).upcase != 'UTF-8' - pdf = IFPDF.new(current_language) - else - pdf = ITCPDF.new(current_language) - end + pdf = ITCPDF.new(current_language) pdf.SetTitle("#{issue.project} - ##{issue.tracker} #{issue.id}") pdf.alias_nb_pages pdf.footer_date = format_date(Date.today) diff --git a/lib/redmine/helpers/gantt.rb b/lib/redmine/helpers/gantt.rb index a1160feed..576ec7c52 100644 --- a/lib/redmine/helpers/gantt.rb +++ b/lib/redmine/helpers/gantt.rb @@ -507,11 +507,7 @@ module Redmine end if Object.const_defined?(:Magick) def to_pdf - if l(:general_pdf_encoding).upcase != 'UTF-8' - pdf = ::Redmine::Export::PDF::IFPDF.new(current_language) - else - pdf = ::Redmine::Export::PDF::ITCPDF.new(current_language) - end + pdf = ::Redmine::Export::PDF::ITCPDF.new(current_language) pdf.SetTitle("#{l(:label_gantt)} #{project}") pdf.alias_nb_pages pdf.footer_date = format_date(Date.today) diff --git a/vendor/plugins/rfpdf/lib/fpdf/chinese.rb b/vendor/plugins/rfpdf/lib/fpdf/chinese.rb index fe773e2bf..5edccca9f 100644 --- a/vendor/plugins/rfpdf/lib/fpdf/chinese.rb +++ b/vendor/plugins/rfpdf/lib/fpdf/chinese.rb @@ -116,7 +116,7 @@ module PDF_Chinese end def GetStringWidth(s) - if(@CurrentFont['type']=='Type0') + if(@current_font['type']=='Type0') return GetMBStringWidth(s) else return super(s) @@ -126,7 +126,7 @@ module PDF_Chinese def GetMBStringWidth(s) #Multi-byte version of GetStringWidth() l=0 - cw=@CurrentFont['cw'] + cw=@current_font['cw'] nb=s.length i=0 while(i0 and s[nb-1]=="\n") @@ -233,11 +233,11 @@ module PDF_Chinese b+='B' end Cell(w,h,s[j,i-j],b,2,align,fill) - @x=@lMargin + @x=@l_margin end def Write(h,txt,link='') - if(@CurrentFont['type']=='Type0') + if(@current_font['type']=='Type0') MBWrite(h,txt,link) else super(h,txt,link) @@ -246,9 +246,9 @@ module PDF_Chinese def MBWrite(h,txt,link) #Multi-byte version of Write() - cw=@CurrentFont['cw'] - w=@w-@rMargin-@x - wmax=(w-2*@cMargin)*1000/@FontSize + cw=@current_font['cw'] + w=@w-@r_margin-@x + wmax=(w-2*@c_margin)*1000/@font_size s=txt.gsub("\r",'') nb=s.length sep=-1 @@ -269,9 +269,9 @@ module PDF_Chinese j=i l=0 if(nl==1) - @x=@lMargin - w=@w-@rMargin-@x - wmax=(w-2*@cMargin)*1000/@FontSize + @x=@l_margin + w=@w-@r_margin-@x + wmax=(w-2*@c_margin)*1000/@font_size end nl+=1 next @@ -283,12 +283,12 @@ module PDF_Chinese if(l>wmax) #Automatic line break if(sep==-1 or i==j) - if(@x>@lMargin) + if(@x>@l_margin) #Move to next line - @x=@lMargin + @x=@l_margin @y+=h - w=@w-@rMargin-@x - wmax=(w-2*@cMargin)*1000/@FontSize + w=@w-@r_margin-@x + wmax=(w-2*@c_margin)*1000/@font_size i+=1 nl+=1 next @@ -305,9 +305,9 @@ module PDF_Chinese j=i l=0 if(nl==1) - @x=@lMargin - w=@w-@rMargin-@x - wmax=(w-2*@cMargin)*1000/@FontSize + @x=@l_margin + w=@w-@r_margin-@x + wmax=(w-2*@c_margin)*1000/@font_size end nl+=1 else @@ -316,7 +316,7 @@ module PDF_Chinese end #Last chunk if(i!=j) - Cell(l/1000*@FontSize,h,s[j,i-j],0,0,'',0,link) + Cell(l/1000*@font_size,h,s[j,i-j],0,0,'',0,link) end end @@ -332,10 +332,10 @@ private end # mqr=get_magic_quotes_runtime() # set_magic_quotes_runtime(0) - @FontFiles.each_pair do |file, info| + @font_files.each_pair do |file, info| #Font file embedding newobj() - @FontFiles[file]['n']=@n + @font_files[file]['n']=@n if(defined('FPDF_FONTPATH')) file=FPDF_FONTPATH+file end @@ -411,7 +411,7 @@ private end file=font['file'] if(file) - s+=' /FontFile'+(font['type']=='Type1' ? '' : '2')+' '+@FontFiles[file]['n']+' 0 R' + s+=' /FontFile'+(font['type']=='Type1' ? '' : '2')+' '+@font_files[file]['n']+' 0 R' end out(s+'>>') out('endobj') diff --git a/vendor/plugins/rfpdf/lib/fpdf/japanese.rb b/vendor/plugins/rfpdf/lib/fpdf/japanese.rb index 78f6ce932..65ce2c40a 100644 --- a/vendor/plugins/rfpdf/lib/fpdf/japanese.rb +++ b/vendor/plugins/rfpdf/lib/fpdf/japanese.rb @@ -86,7 +86,7 @@ module PDF_Japanese end def GetStringWidth(s) - if(@CurrentFont['type']=='Type0') + if(@current_font['type']=='Type0') return GetSJISStringWidth(s) else return super(s) @@ -96,7 +96,7 @@ module PDF_Japanese def GetSJISStringWidth(s) #SJIS version of GetStringWidth() l=0 - cw=@CurrentFont['cw'] + cw=@current_font['cw'] nb=s.length i=0 while(i0 and s[nb-1]=="\n") @@ -221,11 +221,11 @@ module PDF_Japanese b+='B' end Cell(w,h,s[j,i-j],b,2,align,fill) - @x=@lMargin + @x=@l_margin end def Write(h,txt,link='') - if(@CurrentFont['type']=='Type0') + if(@current_font['type']=='Type0') SJISWrite(h,txt,link) else super(h,txt,link) @@ -234,9 +234,9 @@ module PDF_Japanese def SJISWrite(h,txt,link) #SJIS version of Write() - cw=@CurrentFont['cw'] - w=@w-@rMargin-@x - wmax=(w-2*@cMargin)*1000/@FontSize + cw=@current_font['cw'] + w=@w-@r_margin-@x + wmax=(w-2*@c_margin)*1000/@font_size s=txt.gsub("\r",'') nb=s.length sep=-1 @@ -257,9 +257,9 @@ module PDF_Japanese l=0 if(nl==1) #Go to left margin - @x=@lMargin - w=@w-@rMargin-@x - wmax=(w-2*@cMargin)*1000/@FontSize + @x=@l_margin + w=@w-@r_margin-@x + wmax=(w-2*@c_margin)*1000/@font_size end nl+=1 next @@ -285,12 +285,12 @@ module PDF_Japanese if(l>wmax) #Automatic line break if(sep==-1 or i==j) - if(@x>@lMargin) + if(@x>@l_margin) #Move to next line - @x=@lMargin + @x=@l_margin @y+=h - w=@w-@rMargin-@x - wmax=(w-2*@cMargin)*1000/@FontSize + w=@w-@r_margin-@x + wmax=(w-2*@c_margin)*1000/@font_size i+=n nl+=1 next @@ -307,9 +307,9 @@ module PDF_Japanese j=i l=0 if(nl==1) - @x=@lMargin - w=@w-@rMargin-@x - wmax=(w-2*@cMargin)*1000/@FontSize + @x=@l_margin + w=@w-@r_margin-@x + wmax=(w-2*@c_margin)*1000/@font_size end nl+=1 else @@ -321,7 +321,7 @@ module PDF_Japanese end #Last chunk if(i!=j) - Cell(l/1000*@FontSize,h,s[j,i-j],0,0,'',0,link) + Cell(l/1000*@font_size,h,s[j,i-j],0,0,'',0,link) end end @@ -337,10 +337,10 @@ private end # mqr=get_magic_quotes_runtime() # set_magic_quotes_runtime(0) - @FontFiles.each_pair do |file, info| + @font_files.each_pair do |file, info| #Font file embedding newobj() - @FontFiles[file]['n']=@n + @font_files[file]['n']=@n if(defined('FPDF_FONTPATH')) file=FPDF_FONTPATH+file end @@ -414,7 +414,7 @@ private end file=font['file'] if(file) - s+=' /FontFile'+(font['type']=='Type1' ? '' : '2')+' '+@FontFiles[file]['n']+' 0 R' + s+=' /FontFile'+(font['type']=='Type1' ? '' : '2')+' '+@font_files[file]['n']+' 0 R' end out(s+'>>') out('endobj') diff --git a/vendor/plugins/rfpdf/lib/fpdf/korean.rb b/vendor/plugins/rfpdf/lib/fpdf/korean.rb index 1777ab09a..11df9ffb0 100644 --- a/vendor/plugins/rfpdf/lib/fpdf/korean.rb +++ b/vendor/plugins/rfpdf/lib/fpdf/korean.rb @@ -85,7 +85,7 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9 end def GetStringWidth(s) - if(@CurrentFont['type']=='Type0') + if(@current_font['type']=='Type0') return GetMBStringWidth(s) else return super(s) @@ -95,7 +95,7 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9 def GetMBStringWidth(s) #Multi-byte version of GetStringWidth() l=0 - cw=@CurrentFont['cw'] + cw=@current_font['cw'] nb=s.length i=0 while(i 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9 i+=2 end end - return l*@FontSize/1000 + return l*@font_size/1000 end def MultiCell(w,h,txt,border=0,align='L',fill=0) - if(@CurrentFont['type']=='Type0') + if(@current_font['type']=='Type0') MBMultiCell(w,h,txt,border,align,fill) else super(w,h,txt,border,align,fill) @@ -121,11 +121,11 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9 def MBMultiCell(w,h,txt,border=0,align='L',fill=0) #Multi-byte version of MultiCell() - cw=@CurrentFont['cw'] + cw=@current_font['cw'] if(w==0) - w=@w-@rMargin-@x + w=@w-@r_margin-@x end - wmax=(w-2*@cMargin)*1000/@FontSize + wmax=(w-2*@c_margin)*1000/@font_size s=txt.gsub("\r",'') nb=s.length if(nb>0 and s[nb-1]=="\n") @@ -202,11 +202,11 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9 b+='B' end Cell(w,h,s[j,i-j],b,2,align,fill) - @x=@lMargin + @x=@l_margin end def Write(h,txt,link='') - if(@CurrentFont['type']=='Type0') + if(@current_font['type']=='Type0') MBWrite(h,txt,link) else super(h,txt,link) @@ -215,9 +215,9 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9 def MBWrite(h,txt,link) #Multi-byte version of Write() - cw=@CurrentFont['cw'] - w=@w-@rMargin-@x - wmax=(w-2*@cMargin)*1000/@FontSize + cw=@current_font['cw'] + w=@w-@r_margin-@x + wmax=(w-2*@c_margin)*1000/@font_size s=txt.gsub("\r",'') nb=s.length sep=-1 @@ -238,9 +238,9 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9 j=i l=0 if(nl==1) - @x=@lMargin - w=@w-@rMargin-@x - wmax=(w-2*@cMargin)*1000/@FontSize + @x=@l_margin + w=@w-@r_margin-@x + wmax=(w-2*@c_margin)*1000/@font_size end nl+=1 next @@ -252,12 +252,12 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9 if(l>wmax) #Automatic line break if(sep==-1 or i==j) - if(@x>@lMargin) + if(@x>@l_margin) #Move to next line - @x=@lMargin + @x=@l_margin @y+=h - w=@w-@rMargin-@x - wmax=(w-2*@cMargin)*1000/@FontSize + w=@w-@r_margin-@x + wmax=(w-2*@c_margin)*1000/@font_size i+=1 nl+=1 next @@ -274,9 +274,9 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9 j=i l=0 if(nl==1) - @x=@lMargin - w=@w-@rMargin-@x - wmax=(w-2*@cMargin)*1000/@FontSize + @x=@l_margin + w=@w-@r_margin-@x + wmax=(w-2*@c_margin)*1000/@font_size end nl+=1 else @@ -285,7 +285,7 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9 end #Last chunk if(i!=j) - Cell(l/1000*@FontSize,h,s[j,i-j],0,0,'',0,link) + Cell(l/1000*@font_size,h,s[j,i-j],0,0,'',0,link) end end @@ -301,10 +301,10 @@ private end # mqr=get_magic_quotes_runtime() # set_magic_quotes_runtime(0) - @FontFiles.each_pair do |file, info| + @font_files.each_pair do |file, info| #Font file embedding newobj() - @FontFiles[file]['n']=@n + @font_files[file]['n']=@n if(defined('FPDF_FONTPATH')) file=FPDF_FONTPATH+file end @@ -378,7 +378,7 @@ private end file=font['file'] if(file) - s+=' /FontFile'+(font['type']=='Type1' ? '' : '2')+' '+@FontFiles[file]['n']+' 0 R' + s+=' /FontFile'+(font['type']=='Type1' ? '' : '2')+' '+@font_files[file]['n']+' 0 R' end out(s+'>>') out('endobj')