# File lib/prawn/document.rb, line 252
     def start_new_page(options = {})
       if last_page = page
         last_page_size    = last_page.size
         last_page_layout  = last_page.layout
         last_page_margins = last_page.margins
       end

       self.page = Prawn::Core::Page.new(self, 
         :size    => options[:size]   || last_page_size, 
         :layout  => options[:layout] || last_page_layout,
         :margins => last_page_margins )
  
       
       apply_margin_option(options) if options[:margin]

       [:left,:right,:top,:bottom].each do |side|
         if margin = options["#{side}_margin""#{side}_margin"]
           page.margins[side] = margin
         end
       end

       generate_margin_box

       update_colors
       undash if dashed?
      
       unless options[:orphan]
         pages.insert(@page_number, page)
         @store.pages.data[:Kids].insert(@page_number, page.dictionary)
         @store.pages.data[:Count] += 1
         @page_number += 1

         save_graphics_state
        
         canvas { image(@background, :at => bounds.top_left) } if @background 
         @y = @bounding_box.absolute_top

         float do
           @on_page_create_callback.call(self) if @on_page_create_callback 
         end
       end
    end