Sha256: 6d188641a7bcb11a39ca4e180f73ef285dec9f4af7036c2615fe9c6e2a4b2b43
Contents?: true
Size: 1.18 KB
Versions: 2
Compression:
Stored size: 1.18 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::ManualBuilder::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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
prawn-2.1.0 | manual/bounding_box/russian_boxes.rb |
prawn-2.0.2 | manual/bounding_box/russian_boxes.rb |