class Charma::Document

Public Class Methods

new(opts={}, &block ) click to toggle source
# File lib/charma/document.rb, line 5
def initialize(opts={}, &block )
  @pages = []
  @opts = opts
  block[self]
end

Public Instance Methods

new_page(opts={},&block) click to toggle source
# File lib/charma/document.rb, line 11
def new_page(opts={},&block)
  page = Page.new(opts)
  block[page]
  @pages.push page
end
render( filename ) click to toggle source
# File lib/charma/document.rb, line 17
def render( filename )
  raise "no page added" if @pages.empty?
  opts = @pages.first.create_opts.merge(@opts)
  Prawn::Document.generate(filename, opts) do |pdf|
    pdf.font( File.expand_path(@opts[:font]) ) if @opts[:font]
    @pages.each.with_index do |page,ix|
      pdf.start_new_page(page.create_opts) if ix != 0
      page.render(pdf)
    end
  end
end