Class: Prawn::Document::BoundingBox
- Inherits:
-
Object
- Object
- Prawn::Document::BoundingBox
- Defined in:
- lib/worker/pdf_writer/bounding_box.rb
Direct Known Subclasses
Instance Method Summary collapse
- #absolute_left ⇒ Object
- #absolute_top ⇒ Object
-
#add_left_padding(left_padding) ⇒ Object
Increase the left padding of the bounding box.
-
#add_right_padding(right_padding) ⇒ Object
Increase the right padding of the bounding box.
- #height ⇒ Object
-
#initialize(document, parent, point, options = {}) ⇒ BoundingBox
constructor
A new instance of BoundingBox.
-
#subtract_left_padding(left_padding) ⇒ Object
Decrease the left padding of the bounding box.
-
#subtract_right_padding(right_padding) ⇒ Object
Decrease the right padding of the bounding box.
- #top ⇒ Object
- #update_margins ⇒ Object
- #width ⇒ Object
Constructor Details
#initialize(document, parent, point, options = {}) ⇒ BoundingBox
Returns a new instance of BoundingBox.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/worker/pdf_writer/bounding_box.rb', line 9 def initialize(document, parent, point, = {}) unless [:width] raise ArgumentError, 'BoundingBox needs the :width option to be set' end @document = document @parent = parent @x, @y = point @base_x, @base_y = point @width = [:width] @base_width = [:width] @height = [:height] @base_height = [:height] @total_left_padding = 0 @total_right_padding = 0 @stretched_height = nil @margins = {} @base_margins = [] if .key?(:base_margins) && ![:base_margins].nil? @base_margins = [:base_margins] end end |
Instance Method Details
#absolute_left ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/worker/pdf_writer/bounding_box.rb', line 44 def absolute_left update_margins margin = 0 if !@margins.empty? margin = @margins[:left] end @base_x + margin end |
#absolute_top ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/worker/pdf_writer/bounding_box.rb', line 56 def absolute_top update_margins margin = 0 if !@margins.empty? margin = @margins[:top] end @base_y - margin end |
#add_left_padding(left_padding) ⇒ Object
Increase the left padding of the bounding box.
110 111 112 113 114 |
# File 'lib/worker/pdf_writer/bounding_box.rb', line 110 def add_left_padding(left_padding) @total_left_padding += left_padding @base_x += left_padding @base_width -= left_padding end |
#add_right_padding(right_padding) ⇒ Object
Increase the right padding of the bounding box.
124 125 126 127 |
# File 'lib/worker/pdf_writer/bounding_box.rb', line 124 def add_right_padding(right_padding) @total_right_padding += right_padding @base_width -= right_padding end |
#height ⇒ Object
95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/worker/pdf_writer/bounding_box.rb', line 95 def height update_margins margin_top = 0 margin_bottom = 0 if !@margins.empty? margin_top = @margins[:top] margin_bottom = @margins[:bottom] end @base_height - (margin_top + margin_bottom) end |
#subtract_left_padding(left_padding) ⇒ Object
Decrease the left padding of the bounding box.
117 118 119 120 121 |
# File 'lib/worker/pdf_writer/bounding_box.rb', line 117 def subtract_left_padding(left_padding) @total_left_padding -= left_padding @base_x -= left_padding @base_width += left_padding end |
#subtract_right_padding(right_padding) ⇒ Object
Decrease the right padding of the bounding box.
130 131 132 133 |
# File 'lib/worker/pdf_writer/bounding_box.rb', line 130 def subtract_right_padding(right_padding) @total_right_padding -= right_padding @base_width += right_padding end |
#top ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/worker/pdf_writer/bounding_box.rb', line 68 def top update_margins margin = 0 if !@margins.empty? margin = @margins[:top] end height - margin end |
#update_margins ⇒ Object
33 34 35 36 37 38 39 40 41 42 |
# File 'lib/worker/pdf_writer/bounding_box.rb', line 33 def update_margins @margins = {} if @base_margins.count > 0 @margins = @base_margins[(@document.page_count - 1) % @base_margins.count] end end |
#width ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/worker/pdf_writer/bounding_box.rb', line 80 def width update_margins margin_left = 0 margin_right = 0 if !@margins.empty? margin_left = @margins[:left] margin_right = @margins[:right] end @base_width - (margin_left + margin_right) end |