Project

General

Profile

Feature #69 » chinese.rb_r6129.patch

Jun NAITOH, 2011-06-29 16:43

View differences:

vendor/plugins/rfpdf/lib/fpdf/chinese.rb (working copy)
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

  
(7-7/9)