summaryrefslogtreecommitdiffstats
path: root/vendor
diff options
context:
space:
mode:
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>2011-06-30 03:47:56 +0000
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>2011-06-30 03:47:56 +0000
commit047ba7c879c70b5096840b4d09f6c555c00d8abe (patch)
tree18497430b1f7d2118331e6c3d0479e1d2f25b8e0 /vendor
parentdc4123cb9b98058197dff73c53b162ba11296494 (diff)
downloadredmine-047ba7c879c70b5096840b4d09f6c555c00d8abe.tar.gz
redmine-047ba7c879c70b5096840b4d09f6c555c00d8abe.zip
PDF: import Korean rfpdf patch for textilized PDF (#69).
Contributed by Jun NAITOH. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@6132 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'vendor')
-rw-r--r--vendor/plugins/rfpdf/lib/fpdf/korean.rb43
1 files changed, 30 insertions, 13 deletions
diff --git a/vendor/plugins/rfpdf/lib/fpdf/korean.rb b/vendor/plugins/rfpdf/lib/fpdf/korean.rb
index 11df9ffb0..8fbf12909 100644
--- a/vendor/plugins/rfpdf/lib/fpdf/korean.rb
+++ b/vendor/plugins/rfpdf/lib/fpdf/korean.rb
@@ -111,15 +111,20 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9
return l*@font_size/1000
end
- def MultiCell(w,h,txt,border=0,align='L',fill=0)
+ def MultiCell(w,h,txt,border=0,align='L',fill=0,ln=1)
if(@current_font['type']=='Type0')
- MBMultiCell(w,h,txt,border,align,fill)
+ MBMultiCell(w,h,txt,border,align,fill,ln)
else
- super(w,h,txt,border,align,fill)
+ super(w,h,txt,border,align,fill,ln)
end
end
- def MBMultiCell(w,h,txt,border=0,align='L',fill=0)
+ def MBMultiCell(w,h,txt,border=0,align='L',fill=0,ln=1)
+
+ # save current position
+ prevx = @x;
+ prevy = @y;
+
#Multi-byte version of MultiCell()
cw=@current_font['cw']
if(w==0)
@@ -202,18 +207,30 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9
b+='B'
end
Cell(w,h,s[j,i-j],b,2,align,fill)
- @x=@l_margin
+
+ # move cursor to specified position
+ if (ln == 1)
+ # go to the beginning of the next line
+ @x=@l_margin
+ elsif (ln == 0)
+ # go to the top-right of the cell
+ @y = prevy;
+ @x = prevx + w;
+ elsif (ln == 2)
+ # go to the bottom-left of the cell
+ @x = prevx;
+ end
end
- def Write(h,txt,link='')
+ def Write(h,txt,link='',fill=0)
if(@current_font['type']=='Type0')
- MBWrite(h,txt,link)
+ MBWrite(h,txt,link,fill)
else
- super(h,txt,link)
+ super(h,txt,link,fill)
end
end
- def MBWrite(h,txt,link)
+ def MBWrite(h,txt,link,fill=0)
#Multi-byte version of Write()
cw=@current_font['cw']
w=@w-@r_margin-@x
@@ -232,7 +249,7 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9
ascii=(c<128)
if(c.chr=="\n")
#Explicit line break
- Cell(w,h,s[j,i-j],0,2,'',0,link)
+ Cell(w,h,s[j,i-j],0,2,'',fill,link)
i+=1
sep=-1
j=i
@@ -265,9 +282,9 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9
if(i==j)
i+=ascii ? 1 : 2
end
- Cell(w,h,s[j,i-j],0,2,'',0,link)
+ Cell(w,h,s[j,i-j],0,2,'',fill,link)
else
- Cell(w,h,s[j,sep-j],0,2,'',0,link)
+ Cell(w,h,s[j,sep-j],0,2,'',fill,link)
i=(s[sep].chr==' ') ? sep+1 : sep
end
sep=-1
@@ -285,7 +302,7 @@ UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 9
end
#Last chunk
if(i!=j)
- Cell(l/1000*@font_size,h,s[j,i-j],0,0,'',0,link)
+ Cell(l*@font_size/1000.0,h,s[j,i-j],0,0,'',fill,link)
end
end