# frozen_string_literal: true
# There are two other text methods available: formatted_text
and
# formatted_text_box
.
#
# These are useful when the provided text has numerous portions that need to be
# formatted differently. As you might imply from their names the first should
# be used for free flowing text just like the text
method and the
# last should be used for positioned text just like text_box
.
#
# The main difference between these methods and the text
and
# text_box
methods is how the text is provided. The
# formatted_text
and formatted_text_box
methods accept
# an array of hashes. Each hash must provide a :text
option which
# is the text string and may provide the following options: :styles
# (an array of symbols), :size
(the font size),
# :character_spacing
(additional space between the characters),
# :font
(the name of a registered font), :color
(the
# same input accepted by fill_color
and stroke_color
),
# :link
(an URL to create a link), and :local
# (a link to a local file).
require_relative '../example_helper'
filename = File.basename(__FILE__).gsub('.rb', '.pdf')
Prawn::ManualBuilder::Example.generate(filename) do
formatted_text([
{ text: 'Some bold. ', styles: [:bold] },
{ text: 'Some italic. ', styles: [:italic] },
{ text: 'Bold italic. ', styles: %i[bold italic] },
{ text: 'Bigger Text. ', size: 20 },
{ text: 'More spacing. ', character_spacing: 3 },
{ text: 'Different Font. ', font: 'Courier' },
{ text: 'Some coloring. ', color: 'FF00FF' },
{
text: 'Link to the wiki. ',
color: '0000FF',
link: 'https://github.com/prawnpdf/prawn/wiki'
},
{
text: 'Link to a local file. ',
color: '0000FF',
local: './local_file.txt'
}
])
formatted_text_box(
[
{ text: 'Just your regular' },
{ text: ' text_box ', font: 'Courier' },
{
text: 'with some additional formatting options added to the mix.',
color: [50, 100, 0, 0],
styles: [:italic]
}
],
at: [100, 100],
width: 200,
height: 100
)
end