    # 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