pdf: fix tcpdf automatic line break bug (#10554)

Contributed by Jun NAITOH.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9312 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Toshi MARUYAMA 2012-04-03 11:22:21 +00:00
parent 29782860b7
commit 1a87912b06
1 changed files with 7 additions and 7 deletions

View File

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