module Prawn::Text::Formatted

Public Instance Methods

formatted_text_box(array, options = {}) click to toggle source

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 PDF::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

:local

a file or application to be opened locally. A clickable link will be created to the provided local file or application. If the file is another PDF, it will be opened in a new window. 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::Errors::CannotFit if not wide enough to print any text

# File lib/prawn/text/formatted/box.rb, line 92
def formatted_text_box(array, options = {})
  Text::Formatted::Box.new(array, options.merge(document: self)).render
end