Module: Prawn::Text::Formatted

Included in:
Prawn::Text
Defined in:
lib/prawn/text/formatted/box.rb,
lib/prawn/text/formatted/parser.rb,
lib/prawn/text/formatted/fragment.rb

Defined Under Namespace

Classes: Box, Fragment, Parser

Instance Method Summary collapse

Instance Method Details

#formatted_text_box(array, options) ⇒ Object

Draws the requested formatted text into a box. When the text overflows the rectangle shrink to fit or truncate the text. Text boxes are independent of the document y position.

Formatted Text Array

Formatted text is comprised of an array of hashes, where each hash defines text and format information. As of the time of writing, the following hash options are supported:

:text

the text to format according to the other hash options

:styles

an array of styles to apply to this text. Available styles include :bold, :italic, :underline, :strikethrough, :subscript, and :superscript

:size

an integer denoting the font size to apply to this text

:font

the name of a font. The name must be an AFM font with the desired faces or must be a font that is already registered using Prawn::Document#font_families

:color

anything compatible with Prawn::Graphics::Color#fill_color and Prawn::Graphics::Color#stroke_color

:link

a URL to which to create a link. A clickable link will be created to that URL. Note that you must explicitly underline and color using the appropriate tags if you which to draw attention to the link

:anchor

a destination that has already been or will be registered using Prawn::Core::Destinations#add_dest. A clickable link will be created to that destination. Note that you must explicitly underline and color using the appropriate tags if you which to draw attention to the link

:callback

a hash with the following options

:object

required. the object to target

:method

required. the method to call on the target object

:arguments

optional. the arguments to pass to the

callback method

Example

formatted_text_box([{ :text => "hello" },
                    { :text => "world",
                      :size => 24,
                      :styles => [:bold, :italic] }])

Options

Accepts the same options as Text::Box with the below exceptions

:overflow

does not accept :ellipses

Returns

Returns a formatted text array representing any text that did not print under the current settings.

Exceptions

Raises “Bad font family” if no font family is defined for the current font

Raises Prawn::Errrors::CannotFit if not wide enough to print any text

Raises NotImplementedError if :ellipses overflow option included



85
86
87
# File 'lib/prawn/text/formatted/box.rb', line 85

def formatted_text_box(array, options)
  Text::Formatted::Box.new(array, options.merge(:document => self)).render
end