Class: Arrolio::Renderer::OutlineBuilder
- Inherits:
-
Object
- Object
- Arrolio::Renderer::OutlineBuilder
- Defined in:
- lib/arrolio/renderer/outline_builder.rb
Overview
Builds the PDF /Outlines tree from FlowContext#heading_entries. Each entry becomes an /Outlines item with /Title and /Dest pointing at its source page's top. Called by Renderer::Pdf AFTER all pages have been emitted (so page refs exist).
Instance Attribute Summary collapse
-
#document ⇒ Object
readonly
Returns the value of attribute document.
-
#entries ⇒ Object
readonly
Returns the value of attribute entries.
-
#pdfrb_pages ⇒ Object
readonly
Returns the value of attribute pdfrb_pages.
Instance Method Summary collapse
- #build ⇒ Object
-
#initialize(document:, entries:, pdfrb_pages:) ⇒ OutlineBuilder
constructor
A new instance of OutlineBuilder.
Constructor Details
#initialize(document:, entries:, pdfrb_pages:) ⇒ OutlineBuilder
Returns a new instance of OutlineBuilder.
12 13 14 15 16 |
# File 'lib/arrolio/renderer/outline_builder.rb', line 12 def initialize(document:, entries:, pdfrb_pages:) @document = document @entries = entries @pdfrb_pages = pdfrb_pages end |
Instance Attribute Details
#document ⇒ Object (readonly)
Returns the value of attribute document.
10 11 12 |
# File 'lib/arrolio/renderer/outline_builder.rb', line 10 def document @document end |
#entries ⇒ Object (readonly)
Returns the value of attribute entries.
10 11 12 |
# File 'lib/arrolio/renderer/outline_builder.rb', line 10 def entries @entries end |
#pdfrb_pages ⇒ Object (readonly)
Returns the value of attribute pdfrb_pages.
10 11 12 |
# File 'lib/arrolio/renderer/outline_builder.rb', line 10 def pdfrb_pages @pdfrb_pages end |
Instance Method Details
#build ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/arrolio/renderer/outline_builder.rb', line 18 def build return nil if entries.empty? items = build_items return nil if items.empty? root = document.add( { Type: :Outlines, First: ref(items.first), Last: ref(items.last), Count: items.length }, type: Pdfrb::Model::Cos::Dictionary ) catalog = document.catalog catalog.value[:Outlines] = ref(root) root end |