class Prawn::Icon

Easy icon font usage within Prawn. Currently supported icon fonts include: FontAwesome, Zurb Foundicons, GitHub Octicons, as well as PaymentFont.

Icon Keys

Icon keys must be supplied to most Prawn::Icon methods. Keys map directly to a unicode character within the font that produces a given icon. As a rule, included icon keys should match the keys from the font provider. The icon key mapping is specified in the font's legend_file, which is a YAML file located in Prawn::Icon::FONTDIR/font/font.yml.

Prawn::Icon

Houses the methods and interfaces necessary for rendering icons to the Prawn::Document.

Prawn::Icon::FontData

Used to store various information about an icon font, including the key-to-unicode mapping information. Also houses methods to cache and lazily load the requested font data on a document basis.

Prawn::Icon::Parser

Used to initially parse icons that are used with the inline_format: true option. The input string is parsed once for <icon></icon> tags, then the output is provided to Prawn's internal formatted text parser.

Constants

FONTDIR
VERSION

Attributes

set[R]
unicode[R]

Public Class Methods

new(key, document, opts = {}) click to toggle source
# File lib/prawn/icon.rb, line 176
def initialize(key, document, opts = {})
  @pdf     = document
  @set     = opts[:set] ||
             FontData.specifier_from_key(key)
  @data    = FontData.load(document, @set)
  @key     = strip_specifier_from_key(key)
  @unicode = @data.unicode(@key)
  @options = opts
end

Public Instance Methods

format_hash() click to toggle source
# File lib/prawn/icon.rb, line 186
def format_hash
  base = { font: @set.to_s, content: @unicode }
  opts = @options.dup
  # Prawn::Table renames :color to :text_color
  opts[:text_color] = opts.delete(:color)
  base.merge(opts)
end
render() click to toggle source
# File lib/prawn/icon.rb, line 194
def render
  @pdf.font(@data.path) do
    @pdf.text @unicode, @options
  end
end