prawnpdf/prawn

View on GitHub
manual/text/column_box.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

require 'prawn/manual_builder'

Prawn::ManualBuilder::Chapter.new do
  title 'Column Box'

  text do
    prose <<~TEXT
      The <code>column_box</code> method allows you to define columns that flow
      their contents from one section to the next. You can have a number of
      columns on the page, and only when the last column overflows will a new
      page be created.
    TEXT
  end

  example new_page: true do
    move_down 30
    text 'The Prince', align: :center, size: 18
    text 'Niccolò Machiavelli', align: :center, size: 14
    move_down 30

    column_box([0, cursor], columns: 2, width: bounds.width) do
      text("#{<<~TEXT.gsub(/\s+/, ' ')}\n\n" * 5)
        All the States and Governments by which men are or ever have been ruled,
        have been and are either Republics or Princedoms. Princedoms are either
        hereditary, in which the sovereignty is derived through an ancient line
        of ancestors, or they are new. New Princedoms are either wholly new, as
        that of Milan to Francesco Sforza; or they are like limbs joined on to
        the hereditary possessions of the Prince who acquires them, as the
        Kingdom of Naples to the dominions of the King of Spain. The States thus
        acquired have either been used to live under a Prince or have been free;
        and he who acquires them does so either by his own arms or by the arms of
        others, and either by good fortune or by merit.
      TEXT
    end
  end
end