142 |
142 |
return l*@font_size/1000
|
143 |
143 |
end
|
144 |
144 |
|
145 |
|
def MultiCell(w,h,txt,border=0,align='L',fill=0)
|
|
145 |
def MultiCell(w,h,txt,border=0,align='L',fill=0,ln=1)
|
146 |
146 |
if(@current_font['type']=='Type0')
|
147 |
|
MBMultiCell(w,h,txt,border,align,fill)
|
|
147 |
MBMultiCell(w,h,txt,border,align,fill,ln)
|
148 |
148 |
else
|
149 |
|
super(w,h,txt,border,align,fill)
|
|
149 |
super(w,h,txt,border,align,fill,ln)
|
150 |
150 |
end
|
151 |
151 |
end
|
152 |
152 |
|
153 |
|
def MBMultiCell(w,h,txt,border=0,align='L',fill=0)
|
|
153 |
def MBMultiCell(w,h,txt,border=0,align='L',fill=0,ln=1)
|
|
154 |
|
|
155 |
# save current position
|
|
156 |
prevx = @x;
|
|
157 |
prevy = @y;
|
|
158 |
|
154 |
159 |
#Multi-byte version of MultiCell()
|
155 |
160 |
cw=@current_font['cw']
|
156 |
161 |
if(w==0)
|
... | ... | |
233 |
238 |
b+='B'
|
234 |
239 |
end
|
235 |
240 |
Cell(w,h,s[j,i-j],b,2,align,fill)
|
236 |
|
@x=@l_margin
|
|
241 |
|
|
242 |
# move cursor to specified position
|
|
243 |
if (ln == 1)
|
|
244 |
# go to the beginning of the next line
|
|
245 |
@x=@l_margin
|
|
246 |
elsif (ln == 0)
|
|
247 |
# go to the top-right of the cell
|
|
248 |
@y = prevy;
|
|
249 |
@x = prevx + w;
|
|
250 |
elsif (ln == 2)
|
|
251 |
# go to the bottom-left of the cell
|
|
252 |
@x = prevx;
|
|
253 |
end
|
237 |
254 |
end
|
238 |
255 |
|
239 |
|
def Write(h,txt,link='')
|
|
256 |
def Write(h,txt,link='',fill=0)
|
240 |
257 |
if(@current_font['type']=='Type0')
|
241 |
|
MBWrite(h,txt,link)
|
|
258 |
MBWrite(h,txt,link,fill)
|
242 |
259 |
else
|
243 |
|
super(h,txt,link)
|
|
260 |
super(h,txt,link,fill)
|
244 |
261 |
end
|
245 |
262 |
end
|
246 |
263 |
|
247 |
|
def MBWrite(h,txt,link)
|
|
264 |
def MBWrite(h,txt,link,fill=0)
|
248 |
265 |
#Multi-byte version of Write()
|
249 |
266 |
cw=@current_font['cw']
|
250 |
267 |
w=@w-@r_margin-@x
|
... | ... | |
263 |
280 |
ascii=(c<128)
|
264 |
281 |
if(c.chr=="\n")
|
265 |
282 |
#Explicit line break
|
266 |
|
Cell(w,h,s[j,i-j],0,2,'',0,link)
|
|
283 |
Cell(w,h,s[j,i-j],0,2,'',fill,link)
|
267 |
284 |
i+=1
|
268 |
285 |
sep=-1
|
269 |
286 |
j=i
|
... | ... | |
296 |
313 |
if(i==j)
|
297 |
314 |
i+=ascii ? 1 : 2
|
298 |
315 |
end
|
299 |
|
Cell(w,h,s[j,i-j],0,2,'',0,link)
|
|
316 |
Cell(w,h,s[j,i-j],0,2,'',fill,link)
|
300 |
317 |
else
|
301 |
|
Cell(w,h,s[j,sep-j],0,2,'',0,link)
|
|
318 |
Cell(w,h,s[j,sep-j],0,2,'',fill,link)
|
302 |
319 |
i=(s[sep].chr==' ') ? sep+1 : sep
|
303 |
320 |
end
|
304 |
321 |
sep=-1
|
... | ... | |
316 |
333 |
end
|
317 |
334 |
#Last chunk
|
318 |
335 |
if(i!=j)
|
319 |
|
Cell(l/1000*@font_size,h,s[j,i-j],0,0,'',0,link)
|
|
336 |
Cell(l*@font_size/1000.0,h,s[j,i-j],0,0,'',fill,link)
|
320 |
337 |
end
|
321 |
338 |
end
|
322 |
339 |
|