Module: ClockworkComicPDF::PDFTocMaker

Included in:
PDFMaker
Defined in:
lib/clockwork_comic_pdf/pdf_toc_maker.rb

Overview

stores the PDF printing methods for making the table of contents

Instance Method Summary collapse

Instance Method Details

#make_toc_item(pdf, toc_item) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/clockwork_comic_pdf/pdf_toc_maker.rb', line 15

def make_toc_item(pdf, toc_item)
  content = [["#{toc_item[:name]}", "#{toc_item[:page]}"]]
  options = { width: pdf.bounds.width / 2, position: :center,
              cell_style: { borders: [], size: 8,
                            padding: 1 } }
  table = Prawn::Table.new(content, pdf, options) do
    cells.style { |c| c.align = c.column.zero? ? :left : :right }
  end
  new_page(pdf) if table.height >= pdf.cursor
  table.draw
end


4
5
6
7
8
9
10
11
12
13
# File 'lib/clockwork_comic_pdf/pdf_toc_maker.rb', line 4

def print_toc(pdf)
  pdf.go_to_page(content_start - 1)
  toc_start = pdf.page_number
  new_page(pdf)
  pdf.text 'Table of Contents', size: 18, align: :left
  pdf.move_down(25)
  page_index.each { |toc_item| make_toc_item(pdf, toc_item) }
  new_page(pdf) unless (toc_start - pdf.page_number).even?
  self.content_start += (toc_start - pdf.page_number)
end