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

a number denoting the font size to apply to this text

:character_spacing

a number denoting how much to increase or decrease the default spacing between characters

: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

:draw_text_callback:

if provided, this Proc will be called instead of #draw_text! once
per fragment for every low-level addition of text to the page.
:callback

an object (or array of such objects) with two methods: #render_behind and #render_in_front, which are called immediately prior to and immediately after rendring the text fragment and which are passed the fragment as an argument

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

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



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

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