### Home Classes Methods

### In Files

- lib/prawn/table/cell/text.rb

### Parent

Prawn::Table::Cell

### Methods

- ::new
- #draw_content
- #font
- #font_style=
- #natural_content_height
- #natural_content_width
- #set_width_constraints
- #styled_width_of
- #text_box
- #with_font
- #with_text_color

### Files

- COPYING
- GPLv2
- GPLv3
- LICENSE

### Class/Module Index

Quicksearch

- Prawn
- Prawn::Core
- Prawn::Core::Page
- Prawn::Core::Page::GraphicsState
- Prawn::Core::Reference
- Prawn::Document
- Prawn::Document::BoundingBox
- Prawn::Document::ColumnBox
- Prawn::Document::GraphicsState
- Prawn::Document::Grid
- Prawn::Document::Internals
- Prawn::Document::PageGeometry
- Prawn::Document::Security
- Prawn::Document::Snapshot
- Prawn::Encoding
- Prawn::Errors
- Prawn::Font
- Prawn::Font::AFM
- Prawn::Font::DFont
- Prawn::Font::TTF
- Prawn::GraphicState
- Prawn::GraphicStateStack
- Prawn::Graphics
- Prawn::Graphics::CapStyle
- Prawn::Graphics::Color
- Prawn::Graphics::Dash
- Prawn::Graphics::Gradient
- Prawn::Graphics::JoinStyle
- Prawn::Graphics::Transformation
- Prawn::Graphics::Transparency
- Prawn::Images
- Prawn::Images::JPG
- Prawn::Images::PNG
- Prawn::Layout
- Prawn::Measurements
- Prawn::Outline
- Prawn::Stamp
- Prawn::Table
- Prawn::Table::Cell
- Prawn::Table::Cell::InTable
- Prawn::Table::Cell::Subtable
- Prawn::Table::Cell::Text
- Prawn::Table::Cells
- Prawn::Text
- Prawn::Text::Box
- Prawn::Text::Formatted
- Prawn::Text::Formatted::Box
- Prawn::Text::Formatted::Fragment
- Prawn::Text::Formatted::Parser
- Arcfour
- Numeric

No matching classes.

# Prawn::Table::Cell::Text

A Cell that contains text. Has some limited options to set font family, size, and style.

### Constants

TextOptions

### Attributes

font[W]
text_color[W]

### Public Class Methods

new(pdf, point, options={}) click to toggle source

    # File lib/prawn/table/cell/text.rb, line 27
    def initialize(pdf, point, options={})
      @text_options = {}
      super
    end

### Public Instance Methods

draw_content() click to toggle source

Draws the text content into its bounding box.

    # File lib/prawn/table/cell/text.rb, line 65
    def draw_content
      with_font do
        @pdf.move_down((@pdf.font.line_gap + @pdf.font.descender)/2)
        with_text_color do
          text_box(:width => content_width + FPTolerance,
                   :height => content_height + FPTolerance,
                   :at => [0, @pdf.cursor]).render
        end
      end
    end

font() click to toggle source

Returns the font that will be used to draw this cell.

    # File lib/prawn/table/cell/text.rb, line 34
    def font
      with_font { @pdf.font }
    end

font_style=(style) click to toggle source

Sets the style of the font in use. Equivalent to the Text::Box `style` option, but we already have a style method.

    # File lib/prawn/table/cell/text.rb, line 41
    def font_style=(style)
      @text_options[:style] = style
    end

natural_content_height() click to toggle source

Returns the natural height of this block of text, wrapped to the preset width.

    # File lib/prawn/table/cell/text.rb, line 55
    def natural_content_height
      with_font do
        b = text_box(:width => content_width + FPTolerance)
        b.render(:dry_run => true)
        b.height + b.line_gap
      end
    end

natural_content_width() click to toggle source

Returns the width of this text with no wrapping. This will be far off from the final width if the text is long.

    # File lib/prawn/table/cell/text.rb, line 48
    def natural_content_width
      [styled_width_of(@content), @pdf.bounds.width].min
    end

set_width_constraints() click to toggle source

    # File lib/prawn/table/cell/text.rb, line 76
    def set_width_constraints
      # Sets a reasonable minimum width. If the cell has any content, make
      # sure we have enough width to be at least one character wide. This is
      # a bit of a hack, but it should work well enough.
      min_content_width = [natural_content_width, styled_width_of("M")].min
      @min_width ||= padding_left + padding_right + min_content_width
      super
    end

### Protected Instance Methods

styled_width_of(text) click to toggle source

Returns the width of `text` under the given text options.

    # File lib/prawn/table/cell/text.rb, line 122
    def styled_width_of(text)
      with_font do
        options = {}
        options[:size] = @text_options[:size] if @text_options[:size]

        @pdf.font.compute_width_of(text, options)
      end
    end

text_box(extra_options={}) click to toggle source

    # File lib/prawn/table/cell/text.rb, line 106
    def text_box(extra_options={})
      if @text_options[:inline_format]
        options = @text_options.dup
        options.delete(:inline_format)

        array = ::Prawn::Text::Formatted::Parser.to_array(@content)
        ::Prawn::Text::Formatted::Box.new(array,
          options.merge(extra_options).merge(:document => @pdf))
      else
        ::Prawn::Text::Box.new(@content, @text_options.merge(extra_options).
           merge(:document => @pdf))
      end
    end

with_font() click to toggle source

    # File lib/prawn/table/cell/text.rb, line 87
    def with_font
      @pdf.save_font do
        options = {}
        options[:style] = @text_options[:style] if @text_options[:style]

        @pdf.font(@font || @pdf.font.name, options)

        yield
      end
    end

with_text_color() click to toggle source

    # File lib/prawn/table/cell/text.rb, line 98
    def with_text_color
      old_color = @pdf.fill_color || '000000'
      @pdf.fill_color(@text_color) if @text_color
      yield
    ensure
      @pdf.fill_color(old_color)
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.