]> source.dussan.org Git - redmine.git/commitdiff
pdf: fix tcpdf automatic line break bug (#10554)
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Tue, 3 Apr 2012 11:22:21 +0000 (11:22 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Tue, 3 Apr 2012 11:22:21 +0000 (11:22 +0000)
Contributed by Jun NAITOH.

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

vendor/plugins/rfpdf/lib/tcpdf.rb

index 5ff5cd30f82761b4e180e0c2180c5c22fa5f8ce9..e8878934c047d3b30580e5b5d86742bd6efb42e2 100755 (executable)
@@ -1803,7 +1803,7 @@ class TCPDF
                        w = @w - @r_margin - @x;
                end
 
-               wmax = (w - 2 * @c_margin);
+               wmax = (w - 3 * @c_margin);
 
                s = txt.gsub("\r", ''); # remove carriage returns
                nb = s.length;
@@ -1862,7 +1862,7 @@ class TCPDF
                                ns += 1;
                        end
 
-                       l = GetStringWidth(s[from_j, to_index - from_j + 1]);
+                       l = GetStringWidth(s[from_j, to_index - from_j]);
 
                        if (l > wmax)
                                #Automatic line break
@@ -1945,7 +1945,7 @@ class TCPDF
 
                #Output text in flowing mode
                w = @w - @r_margin - @x;
-               wmax = (w - 2 * @c_margin);
+               wmax = (w - 3 * @c_margin);
     
                s = txt.gsub("\r", '');
                nb = s.length;
@@ -1974,7 +1974,7 @@ class TCPDF
                                if (nl == 1)
                                        @x = @l_margin;
                                        w = @w - @r_margin - @x;
-                                       wmax = (w - 2 * @c_margin);
+                                       wmax = (w - 3 * @c_margin);
                                end
                                nl += 1;
                                next
@@ -1982,7 +1982,7 @@ class TCPDF
                        if (c == " "[0])
                                sep= i;
                        end
-                       l = GetStringWidth(s[j, i - j + 1]);
+                       l = GetStringWidth(s[j, i - j]);
                        if (l > wmax)
                                #Automatic line break (word wrapping)
                                if (sep == -1)
@@ -1991,7 +1991,7 @@ class TCPDF
                                                @x = @l_margin;
                                                @y += h;
                                                w=@w - @r_margin - @x;
-                                               wmax=(w - 2 * @c_margin);
+                                               wmax=(w - 3 * @c_margin);
                                                i += 1
                                                nl += 1
                                                next
@@ -2010,7 +2010,7 @@ class TCPDF
                                if (nl==1)
                                        @x = @l_margin;
                                        w = @w - @r_margin - @x;
-                                       wmax = (w - 2 * @c_margin);
+                                       wmax = (w - 3 * @c_margin);
                                end
                                nl += 1;
                        else