]> source.dussan.org Git - redmine.git/commitdiff
PDF: import CJK patches and all languages use TCPDF (#8312).
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Mon, 9 May 2011 11:12:27 +0000 (11:12 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Mon, 9 May 2011 11:12:27 +0000 (11:12 +0000)
Contributed Jun NAITOH.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5720 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redmine/export/pdf.rb
lib/redmine/helpers/gantt.rb
vendor/plugins/rfpdf/lib/fpdf/chinese.rb
vendor/plugins/rfpdf/lib/fpdf/japanese.rb
vendor/plugins/rfpdf/lib/fpdf/korean.rb

index 2787f1a6f7b02fca4b45a29decd2af1f9992d889..177f5c8356bca461bc6ff50b6b55379052658acc 100644 (file)
@@ -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)
index a1160feedf6578ad7b86b13d0a4721229d8667ed..576ec7c52e891fc3a9a785ce6d79c4b9c020c96d 100644 (file)
@@ -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)
index fe773e2bf4f50a99d9c9a679451fac6db70865c0..5edccca9f2142dfab2e8cd4c468cfb32d646ccd0 100644 (file)
@@ -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(i<nb)
@@ -139,11 +139,11 @@ module PDF_Chinese
                        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)
@@ -152,11 +152,11 @@ module PDF_Chinese
 
   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")
@@ -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')
index 78f6ce9320721c1857260b3cdefca9f80f0ae71c..65ce2c40a8ea164b0a122b9275d8f32f4b9ab61c 100644 (file)
@@ -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(i<nb)
@@ -115,11 +115,11 @@ module PDF_Japanese
                        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')
                SJISMultiCell(w,h,txt,border,align,fill)
        else
                super(w,h,txt,border,align,fill)
@@ -128,11 +128,11 @@ module PDF_Japanese
 
   def SJISMultiCell(w,h,txt,border=0,align='L',fill=0)
        #Output text with automatic or explicit line breaks
-       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")
@@ -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')
index 1777ab09a15d643435ee312b29c5f1a389c2e7a7..11df9ffb0ea604f0082ed59c20bbd10a60147f5c 100644 (file)
@@ -85,7 +85,7 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9
   end\r
 \r
   def GetStringWidth(s)\r
-       if(@CurrentFont['type']=='Type0')\r
+       if(@current_font['type']=='Type0')\r
                return GetMBStringWidth(s)\r
        else\r
                return super(s)\r
@@ -95,7 +95,7 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9
   def GetMBStringWidth(s)\r
        #Multi-byte version of GetStringWidth()\r
        l=0\r
-       cw=@CurrentFont['cw']\r
+       cw=@current_font['cw']\r
        nb=s.length\r
        i=0\r
        while(i<nb)\r
@@ -108,11 +108,11 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9
                        i+=2\r
                end\r
        end\r
-       return l*@FontSize/1000\r
+       return l*@font_size/1000\r
   end\r
 \r
   def MultiCell(w,h,txt,border=0,align='L',fill=0)\r
-       if(@CurrentFont['type']=='Type0')\r
+       if(@current_font['type']=='Type0')\r
                MBMultiCell(w,h,txt,border,align,fill)\r
        else\r
                super(w,h,txt,border,align,fill)\r
@@ -121,11 +121,11 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9
 \r
   def MBMultiCell(w,h,txt,border=0,align='L',fill=0)\r
        #Multi-byte version of MultiCell()\r
-       cw=@CurrentFont['cw']\r
+       cw=@current_font['cw']\r
        if(w==0)\r
-               w=@w-@rMargin-@x\r
+               w=@w-@r_margin-@x\r
     end\r
-       wmax=(w-2*@cMargin)*1000/@FontSize\r
+       wmax=(w-2*@c_margin)*1000/@font_size\r
        s=txt.gsub("\r",'')\r
        nb=s.length\r
        if(nb>0 and s[nb-1]=="\n")\r
@@ -202,11 +202,11 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9
                b+='B'\r
     end\r
        Cell(w,h,s[j,i-j],b,2,align,fill)\r
-       @x=@lMargin\r
+       @x=@l_margin\r
   end\r
 \r
   def Write(h,txt,link='')\r
-       if(@CurrentFont['type']=='Type0')\r
+       if(@current_font['type']=='Type0')\r
                MBWrite(h,txt,link)\r
        else\r
                super(h,txt,link)\r
@@ -215,9 +215,9 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9
 \r
   def MBWrite(h,txt,link)\r
        #Multi-byte version of Write()\r
-       cw=@CurrentFont['cw']\r
-       w=@w-@rMargin-@x\r
-       wmax=(w-2*@cMargin)*1000/@FontSize\r
+       cw=@current_font['cw']\r
+       w=@w-@r_margin-@x\r
+       wmax=(w-2*@c_margin)*1000/@font_size\r
        s=txt.gsub("\r",'')\r
        nb=s.length\r
        sep=-1\r
@@ -238,9 +238,9 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9
                        j=i\r
                        l=0\r
                        if(nl==1)\r
-                               @x=@lMargin\r
-                               w=@w-@rMargin-@x\r
-                               wmax=(w-2*@cMargin)*1000/@FontSize\r
+                               @x=@l_margin\r
+                               w=@w-@r_margin-@x\r
+                               wmax=(w-2*@c_margin)*1000/@font_size\r
                        end\r
                        nl+=1\r
                        next\r
@@ -252,12 +252,12 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9
                if(l>wmax)\r
                        #Automatic line break\r
                        if(sep==-1 or i==j)\r
-                               if(@x>@lMargin)\r
+                               if(@x>@l_margin)\r
                                        #Move to next line\r
-                                       @x=@lMargin\r
+                                       @x=@l_margin\r
                                        @y+=h\r
-                                       w=@w-@rMargin-@x\r
-                                       wmax=(w-2*@cMargin)*1000/@FontSize\r
+                                       w=@w-@r_margin-@x\r
+                                       wmax=(w-2*@c_margin)*1000/@font_size\r
                                        i+=1\r
                                        nl+=1\r
                                        next\r
@@ -274,9 +274,9 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9
                        j=i\r
                        l=0\r
                        if(nl==1)\r
-                               @x=@lMargin\r
-                               w=@w-@rMargin-@x\r
-                               wmax=(w-2*@cMargin)*1000/@FontSize\r
+                               @x=@l_margin\r
+                               w=@w-@r_margin-@x\r
+                               wmax=(w-2*@c_margin)*1000/@font_size\r
                        end\r
                        nl+=1\r
                else\r
@@ -285,7 +285,7 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9
        end\r
        #Last chunk\r
        if(i!=j)\r
-               Cell(l/1000*@FontSize,h,s[j,i-j],0,0,'',0,link)\r
+               Cell(l/1000*@font_size,h,s[j,i-j],0,0,'',0,link)\r
     end\r
   end\r
 \r
@@ -301,10 +301,10 @@ private
        end\r
        # mqr=get_magic_quotes_runtime()\r
        # set_magic_quotes_runtime(0)\r
-    @FontFiles.each_pair do |file, info|\r
+    @font_files.each_pair do |file, info|\r
                #Font file embedding\r
                newobj()\r
-               @FontFiles[file]['n']=@n\r
+               @font_files[file]['n']=@n\r
                if(defined('FPDF_FONTPATH'))\r
                        file=FPDF_FONTPATH+file\r
       end\r
@@ -378,7 +378,7 @@ private
           end\r
                                file=font['file']\r
                                if(file)\r
-                                       s+=' /FontFile'+(font['type']=='Type1' ? '' : '2')+' '+@FontFiles[file]['n']+' 0 R'\r
+                                       s+=' /FontFile'+(font['type']=='Type1' ? '' : '2')+' '+@font_files[file]['n']+' 0 R'\r
           end\r
                                out(s+'>>')\r
                                out('endobj')\r