Class: Prawn::Core::DocumentState
- Inherits:
-
Object
- Object
- Prawn::Core::DocumentState
- Defined in:
- lib/prawn/core/document_state.rb
Overview
:nodoc:
Instance Attribute Summary collapse
-
#before_render_callbacks ⇒ Object
Returns the value of attribute before_render_callbacks.
-
#compress ⇒ Object
Returns the value of attribute compress.
-
#encrypt ⇒ Object
Returns the value of attribute encrypt.
-
#encryption_key ⇒ Object
Returns the value of attribute encryption_key.
-
#on_page_create_callback ⇒ Object
Returns the value of attribute on_page_create_callback.
-
#optimize_objects ⇒ Object
Returns the value of attribute optimize_objects.
-
#page ⇒ Object
Returns the value of attribute page.
-
#pages ⇒ Object
Returns the value of attribute pages.
-
#skip_encoding ⇒ Object
Returns the value of attribute skip_encoding.
-
#store ⇒ Object
Returns the value of attribute store.
-
#trailer ⇒ Object
Returns the value of attribute trailer.
-
#version ⇒ Object
Returns the value of attribute version.
Instance Method Summary collapse
- #before_render_actions(doc) ⇒ Object
-
#initialize(options) ⇒ DocumentState
constructor
A new instance of DocumentState.
- #insert_page(page, page_number) ⇒ Object
- #normalize_metadata(options) ⇒ Object
- #on_page_create_action(doc) ⇒ Object
- #page_count ⇒ Object
- #populate_pages_from_store(document) ⇒ Object
- #render_body(output) ⇒ Object
Constructor Details
#initialize(options) ⇒ DocumentState
Returns a new instance of DocumentState.
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/prawn/core/document_state.rb', line 4 def initialize() () if [:template] @store = Prawn::Core::ObjectStore.new(:template => [:template]) else @store = Prawn::Core::ObjectStore.new(:info => [:info]) end @version = 1.3 @pages = [] @page = nil @trailer = {} @compress = .fetch(:compress, false) @encrypt = .fetch(:encrypt, false) @encryption_key = [:encryption_key] @optimize_objects = .fetch(:optimize_objects, false) @skip_encoding = .fetch(:skip_encoding, false) @before_render_callbacks = [] @on_page_create_callback = nil end |
Instance Attribute Details
#before_render_callbacks ⇒ Object
Returns the value of attribute before_render_callbacks.
26 27 28 |
# File 'lib/prawn/core/document_state.rb', line 26 def before_render_callbacks @before_render_callbacks end |
#compress ⇒ Object
Returns the value of attribute compress.
26 27 28 |
# File 'lib/prawn/core/document_state.rb', line 26 def compress @compress end |
#encrypt ⇒ Object
Returns the value of attribute encrypt.
26 27 28 |
# File 'lib/prawn/core/document_state.rb', line 26 def encrypt @encrypt end |
#encryption_key ⇒ Object
Returns the value of attribute encryption_key.
26 27 28 |
# File 'lib/prawn/core/document_state.rb', line 26 def encryption_key @encryption_key end |
#on_page_create_callback ⇒ Object
Returns the value of attribute on_page_create_callback.
26 27 28 |
# File 'lib/prawn/core/document_state.rb', line 26 def on_page_create_callback @on_page_create_callback end |
#optimize_objects ⇒ Object
Returns the value of attribute optimize_objects.
26 27 28 |
# File 'lib/prawn/core/document_state.rb', line 26 def optimize_objects @optimize_objects end |
#page ⇒ Object
Returns the value of attribute page.
26 27 28 |
# File 'lib/prawn/core/document_state.rb', line 26 def page @page end |
#pages ⇒ Object
Returns the value of attribute pages.
26 27 28 |
# File 'lib/prawn/core/document_state.rb', line 26 def pages @pages end |
#skip_encoding ⇒ Object
Returns the value of attribute skip_encoding.
26 27 28 |
# File 'lib/prawn/core/document_state.rb', line 26 def skip_encoding @skip_encoding end |
#store ⇒ Object
Returns the value of attribute store.
26 27 28 |
# File 'lib/prawn/core/document_state.rb', line 26 def store @store end |
#trailer ⇒ Object
Returns the value of attribute trailer.
26 27 28 |
# File 'lib/prawn/core/document_state.rb', line 26 def trailer @trailer end |
#version ⇒ Object
Returns the value of attribute version.
26 27 28 |
# File 'lib/prawn/core/document_state.rb', line 26 def version @version end |
Instance Method Details
#before_render_actions(doc) ⇒ Object
59 60 61 |
# File 'lib/prawn/core/document_state.rb', line 59 def before_render_actions(doc) before_render_callbacks.each{ |c| c.call(self) } end |
#insert_page(page, page_number) ⇒ Object
49 50 51 52 53 |
# File 'lib/prawn/core/document_state.rb', line 49 def insert_page(page, page_number) pages.insert(page_number, page) store.pages.data[:Kids].insert(page_number, page.dictionary) store.pages.data[:Count] += 1 end |
#normalize_metadata(options) ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/prawn/core/document_state.rb', line 41 def () [:info] ||= {} [:info][:Creator] ||= "Prawn" [:info][:Producer] = "Prawn" info = [:info] end |
#on_page_create_action(doc) ⇒ Object
55 56 57 |
# File 'lib/prawn/core/document_state.rb', line 55 def on_page_create_action(doc) on_page_create_callback[doc] if on_page_create_callback end |
#page_count ⇒ Object
63 64 65 |
# File 'lib/prawn/core/document_state.rb', line 63 def page_count pages.length end |
#populate_pages_from_store(document) ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/prawn/core/document_state.rb', line 30 def populate_pages_from_store(document) return 0 if @store.page_count <= 0 || @pages.size > 0 count = (1..@store.page_count) @pages = count.map do |index| orig_dict_id = @store.object_id_for_page(index) Prawn::Core::Page.new(document, :object_id => orig_dict_id) end end |
#render_body(output) ⇒ Object
67 68 69 70 71 72 73 74 |
# File 'lib/prawn/core/document_state.rb', line 67 def render_body(output) store.compact if optimize_objects store.each do |ref| ref.offset = output.size output << (@encrypt ? ref.encrypted_object(@encryption_key) : ref.object) end end |