9: def to_pdf(people, index = 0)
10: Array.wrap(people).each do |person|
11: if index > 0 && (index % 15 == 0)
12: start_new_page
13: end
14:
15: card_top = bounds.top_left.last - ((index % 15) / 3) * 144
16: card_left_side = bounds.top_left.first + (index % 3) * 199
17: font "Helvetica-Bold"
18: fill_color "000000"
19: self.font_size = 13
20: draw_text person.name || "", :at => [ card_left_side, card_top ]
21: self.font_size = 10
22: draw_text "Categories:", :at => [ card_left_side, card_top - 12 ]
23:
24: draw_text "Road: #{person.road_category}", :at => [ card_left_side, card_top - 24 ]
25: draw_text "MTB: #{Category.short_name(person.mtb_category)}", :at => [ card_left_side + 75, card_top - 24 ]
26:
27: draw_text "Track: #{person.track_category}", :at => [ card_left_side, card_top - 36 ]
28: draw_text "DH: #{Category.short_name(person.dh_category)}", :at => [ card_left_side + 75, card_top - 36 ]
29:
30: draw_text "CCX: #{Category.short_name(person.ccx_category)}", :at => [ card_left_side, card_top - 48 ]
31: draw_text "Age: #{person.racing_age}", :at => [ card_left_side + 75, card_top - 48 ]
32:
33: draw_text "Road # #{person.road_number}", :at => [ card_left_side, card_top - 60 ]
34: draw_text "CX Age: #{person.cyclocross_racing_age}", :at => [ card_left_side + 75, card_top - 60 ]
35:
36: draw_text "OBRA License # #{person.license}", :at => [ card_left_side, card_top - 72 ]
37:
38: fill_color "ffcc33"
39: rectangle [ card_left_side + 164, card_top + 10 ], 20, 84
40: fill
41:
42: fill_color "ffffff"
43: self.font_size = 14
44: draw_text "2", :at => [ card_left_side + 171, card_top - 10 ]
45: draw_text "0", :at => [ card_left_side + 171, card_top - 27 ]
46: draw_text "1", :at => [ card_left_side + 171, card_top - 44 ]
47: draw_text "1", :at => [ card_left_side + 171, card_top - 61 ]
48:
49: index = index + 1
50: end
51:
52: render
53: end