118 |
118 |
return l*@font_size/1000
|
119 |
119 |
end
|
120 |
120 |
|
121 |
|
def MultiCell(w,h,txt,border=0,align='L',fill=0)
|
|
121 |
def MultiCell(w,h,txt,border=0,align='L',fill=0,ln=1)
|
122 |
122 |
if(@current_font['type']=='Type0')
|
123 |
|
SJISMultiCell(w,h,txt,border,align,fill)
|
|
123 |
SJISMultiCell(w,h,txt,border,align,fill,ln)
|
124 |
124 |
else
|
125 |
|
super(w,h,txt,border,align,fill)
|
|
125 |
super(w,h,txt,border,align,fill,ln)
|
126 |
126 |
end
|
127 |
127 |
end
|
128 |
128 |
|
129 |
|
def SJISMultiCell(w,h,txt,border=0,align='L',fill=0)
|
|
129 |
def SJISMultiCell(w,h,txt,border=0,align='L',fill=0,ln=1)
|
|
130 |
|
|
131 |
# save current position
|
|
132 |
prevx = @x;
|
|
133 |
prevy = @y;
|
|
134 |
|
130 |
135 |
#Output text with automatic or explicit line breaks
|
131 |
136 |
cw=@current_font['cw']
|
132 |
137 |
if(w==0)
|
... | ... | |
221 |
226 |
b+='B'
|
222 |
227 |
end
|
223 |
228 |
Cell(w,h,s[j,i-j],b,2,align,fill)
|
224 |
|
@x=@l_margin
|
|
229 |
|
|
230 |
# move cursor to specified position
|
|
231 |
if (ln == 1)
|
|
232 |
# go to the beginning of the next line
|
|
233 |
@x=@l_margin
|
|
234 |
elsif (ln == 0)
|
|
235 |
# go to the top-right of the cell
|
|
236 |
@y = prevy;
|
|
237 |
@x = prevx + w;
|
|
238 |
elsif (ln == 2)
|
|
239 |
# go to the bottom-left of the cell
|
|
240 |
@x = prevx;
|
|
241 |
end
|
225 |
242 |
end
|
226 |
243 |
|
227 |
|
def Write(h,txt,link='')
|
|
244 |
def Write(h,txt,link='',fill=0)
|
228 |
245 |
if(@current_font['type']=='Type0')
|
229 |
|
SJISWrite(h,txt,link)
|
|
246 |
SJISWrite(h,txt,link,fill)
|
230 |
247 |
else
|
231 |
|
super(h,txt,link)
|
|
248 |
super(h,txt,link,fill)
|
232 |
249 |
end
|
233 |
250 |
end
|
234 |
251 |
|
235 |
|
def SJISWrite(h,txt,link)
|
|
252 |
def SJISWrite(h,txt,link,fill=0)
|
236 |
253 |
#SJIS version of Write()
|
237 |
254 |
cw=@current_font['cw']
|
238 |
255 |
w=@w-@r_margin-@x
|
... | ... | |
250 |
267 |
o=c
|
251 |
268 |
if(o==10)
|
252 |
269 |
#Explicit line break
|
253 |
|
Cell(w,h,s[j,i-j],0,2,'',0,link)
|
|
270 |
Cell(w,h,s[j,i-j],0,2,'',fill,link)
|
254 |
271 |
i+=1
|
255 |
272 |
sep=-1
|
256 |
273 |
j=i
|
... | ... | |
298 |
315 |
if(i==j)
|
299 |
316 |
i+=n
|
300 |
317 |
end
|
301 |
|
Cell(w,h,s[j,i-j],0,2,'',0,link)
|
|
318 |
Cell(w,h,s[j,i-j],0,2,'',fill,link)
|
302 |
319 |
else
|
303 |
|
Cell(w,h,s[j,sep-j],0,2,'',0,link)
|
|
320 |
Cell(w,h,s[j,sep-j],0,2,'',fill,link)
|
304 |
321 |
i=(s[sep].chr==' ') ? sep+1 : sep
|
305 |
322 |
end
|
306 |
323 |
sep=-1
|
... | ... | |
321 |
338 |
end
|
322 |
339 |
#Last chunk
|
323 |
340 |
if(i!=j)
|
324 |
|
Cell(l/1000*@font_size,h,s[j,i-j],0,0,'',0,link)
|
|
341 |
Cell(l*@font_size/1000.0,h,s[j,i-j],0,0,'',fill,link)
|
325 |
342 |
end
|
326 |
343 |
end
|
327 |
344 |
|