]> source.dussan.org Git - redmine.git/commitdiff
ruby1.9 compatibility
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 1 Jan 2011 11:45:12 +0000 (11:45 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 1 Jan 2011 11:45:12 +0000 (11:45 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4602 e93f8b46-1217-0410-a6f0-8f06a7374b81

vendor/plugins/rfpdf/lib/rfpdf/fpdf.rb

index ad52e9e62381a42f00994b2e13c1231c07c1359b..c41174f6a48712b8daad4ffd456e206d0141f833 100644 (file)
@@ -378,13 +378,21 @@ class FPDF
         end
         @ColorFlag=(@FillColor!=@TextColor)
     end
+    
+    def GetCharWidth(widths, index)
+      if index.is_a?(String)
+        widths[index.ord]
+      else
+        widths[index]
+      end
+    end
 
     def GetStringWidth(s)
         # Get width of a string in the current font
         cw=@CurrentFont['cw']
         w=0
         s.each_byte do |c|
-            w=w+cw[c]
+            w=w+GetCharWidth(cw, c)
         end
         w*@FontSize/1000.0
     end
@@ -707,7 +715,7 @@ class FPDF
                     ls=l
                     ns=ns+1
                 end
-                l=l+cw[c[0]]
+                l=l+GetCharWidth(cw, c[0])
                 if l>wmax
                     # Automatic line break
                     if sep==-1
@@ -786,7 +794,7 @@ class FPDF
                 sep=i
                 ls=l
             end
-            l=l+cw[c];
+            l=l+GetCharWidth(cw, c);
             if l>wmax
                 # Automatic line break
                 if sep==-1
@@ -1079,7 +1087,7 @@ class FPDF
                 cw=font['cw']
                 s='['
                 32.upto(255) do |i|
-                    s << cw[i].to_s+' '
+                    s << GetCharWidth(cw, i).to_s + ' '
                 end
                 out(s+']')
                 out('endobj')