Sha256: ab2616d643b9137cc58470454bc108f26bceb63123a215e36a57baaa9970f101

Contents?: true

Size: 1.14 KB

Versions: 8

Compression:

Stored size: 1.14 KB

Contents

# encoding: utf-8
#
# This example is mostly just for fun, and shows how nested bounding boxes
# can simplify calculations. See the "Bounding Box" section of the manual
# for more basic uses.
#
require File.expand_path(File.join(File.dirname(__FILE__),
                                   %w[.. example_helper]))

filename = File.basename(__FILE__).gsub('.rb', '.pdf')
Prawn::Example.generate(filename) do
  def combine(a1, a2)
    output = []
    a1.each do |i1|
      a2.each do |i2|
        output += [[i1,i2]]
      end
    end
    output
  end

  def recurse_bounding_box(max_depth=4, depth=1)
    width = (bounds.width-15)/2
    height = (bounds.height-15)/2
    left_top_corners = combine([5, bounds.right-width-5],
                               [bounds.top-5, height+5])
    left_top_corners.each do |lt|
      bounding_box(lt, :width => width, :height => height) do
        stroke_bounds
        recurse_bounding_box(max_depth, depth+1) if depth < max_depth
      end
    end
  end

  # Set up a bbox from the dashed line to the bottom of the page
  bounding_box([0, cursor], :width => bounds.width, :height => cursor) do
    recurse_bounding_box
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
prawn-1.0.0 manual/bounding_box/russian_boxes.rb
prawn-0.15.0 manual/bounding_box/russian_boxes.rb
prawn-0.14.0 manual/bounding_box/russian_boxes.rb
prawn-0.13.2 manual/bounding_box/russian_boxes.rb
prawn-0.13.1 manual/bounding_box/russian_boxes.rb
prawn-0.13.0 manual/bounding_box/russian_boxes.rb
prawn-1.0.0.rc2 manual/bounding_box/russian_boxes.rb
nurettin-prawn-1.0.0.rc1 manual/bounding_box/russian_boxes.rb