Class | PDF::TechBook::TagTocDots |
In: |
lib/pdf/techbook.rb
|
Parent: | Object |
A stand-alone callback that draws a dotted line over to the right and appends a page number. The info[:params] will be like a standard XML tag with three named parameters:
level: | The table of contents level that corresponds to a particular style. In the current TechBook implementation, there are only two levels. Level 1 uses a 16 point font and level1_style; level 2 uses a 12 point font and level2_style. |
page: | The page number that is to be printed. |
xref: | The target destination that will be used as a link. |
All parameters are required.
DEFAULT_L1_STYLE | = | { :width => 1, :cap => :round, :dash => { :pattern => [ 1, 3 ], :phase => 1 }, :font_size => 16 |
DEFAULT_L2_STYLE | = | { :width => 1, :cap => :round, :dash => { :pattern => [ 1, 5 ], :phase => 1 }, :font_size => 12 |
level1_style | [RW] | Controls the level 1 style. |
level2_style | [RW] | Controls the level 2 style. |
# File lib/pdf/techbook.rb, line 312 312: def [](pdf, info) 313: if @level1_style.nil? 314: @level1_style = sh = DEFAULT_L1_STYLE 315: ss = PDF::Writer::StrokeStyle.new(sh[:width]) 316: ss.cap = sh[:cap] if sh[:cap] 317: ss.dash = sh[:dash] if sh[:dash] 318: @_level1_style = ss 319: end 320: if @level2_style.nil? 321: @level2_style = sh = DEFAULT_L2_STYLE 322: ss = PDF::Writer::StrokeStyle.new(sh[:width]) 323: ss.cap = sh[:cap] if sh[:cap] 324: ss.dash = sh[:dash] if sh[:dash] 325: @_level2_style = ss 326: end 327: 328: level = info[:params]["level"] 329: page = info[:params]["page"] 330: xref = info[:params]["xref"] 331: 332: xpos = 520 333: 334: pdf.save_state 335: case level 336: when "1" 337: pdf.stroke_style @_level1_style 338: size = @level1_style[:font_size] 339: when "2" 340: pdf.stroke_style @_level2_style 341: size = @level2_style[:font_size] 342: end 343: 344: page = "<c:ilink dest='#{xref}'>#{page}</c:ilink>" if xref 345: 346: pdf.line(xpos, info[:y], info[:x] + 5, info[:y]).stroke 347: pdf.restore_state 348: pdf.add_text(xpos + 5, info[:y], page, size) 349: end