manual/bounding_box/indentation.rb
# frozen_string_literal: true
require 'prawn/manual_builder'
Prawn::ManualBuilder::Chapter.new do
title 'Bounding Box Indentation'
text do
prose <<~TEXT
Sometimes you just need to indent a portion of the contents of a bounding
box, and using a nested bounding box is pure overkill. The
<code>indent</code> method is what you might need.
Just provide a number for it to indent all content generated inside the
block.
TEXT
end
example new_page: true do
text 'No indentation on the margin box.'
indent(20) do
text 'Some indentation inside an indent block.'
end
move_down 20
bounding_box([50, cursor], width: 400, height: cursor) do
transparent(0.5) { stroke_bounds }
move_down 10
text 'No indentation inside this bounding box.'
indent(40) do
text 'Inside an indent block. And so is this horizontal line:'
stroke_horizontal_rule
end
move_down 10
text 'No indentation'
move_down 20
indent(60) do
text 'Another indent block.'
bounding_box([0, cursor], width: 200) do
text 'Note that this bounding box coordinates are relative to the indent block'
transparent(0.5) { stroke_bounds }
end
end
end
end
end