class Prawn::Font
Provides font information and helper functions.
Attributes
The current font family
The current font name
The options hash used to initialize the font
Public Class Methods
Source
# File lib/prawn/font.rb, line 238 def self.load(document,name,options={}) case name when /\.ttf$/ then TTF.new(document, name, options) when /\.dfont$/ then DFont.new(document, name, options) when /\.afm$/ then AFM.new(document, name, options) else AFM.new(document, name, options) end end
Shortcut interface for constructing a font object. Filenames of the form *.ttf will call Font::TTF.new
, *.dfont Font::DFont.new, and anything else will be passed through to Font::AFM.new()
Public Instance Methods
Source
# File lib/prawn/font.rb, line 310 def add_to_current_page(subset) @references[subset] ||= register(subset) @document.page.fonts.merge!(identifier_for(subset) => @references[subset]) end
Registers the given subset of the current font with the current PDF page. This is safe to call multiple times for a given font and subset, as it will only add the font the first time it is called.
Source
# File lib/prawn/font.rb, line 261 def ascender @ascender / 1000.0 * size end
The size of the font ascender in PDF points
Source
# File lib/prawn/font.rb, line 267 def descender -@descender / 1000.0 * size end
The size of the font descender in PDF points
Source
# File lib/prawn/font.rb, line 302 def height height_at(size) end
Gets height of current font in PDF points at current font size
Source
# File lib/prawn/font.rb, line 295 def height_at(size) @normalized_height ||= (@ascender - @descender + @line_gap) / 1000.0 @normalized_height * size end
Gets height of current font in PDF points at the given font size
Source
# File lib/prawn/font.rb, line 273 def line_gap @line_gap / 1000.0 * size end
The size of the recommended gap between lines of text in PDF points
Source
# File lib/prawn/font.rb, line 282 def normalize_encoding(string) raise NotImplementedError, "subclasses of Prawn::Font must implement #normalize_encoding" end
Normalizes the encoding of the string to an encoding supported by the font. The string is expected to be UTF-8 going in. It will be re-encoded and the new string will be returned. For an in-place (destructive) version, see normalize_encoding
!.
Source
# File lib/prawn/font.rb, line 289 def normalize_encoding!(str) str.replace(normalize_encoding(str)) end
Destructive version of normalize_encoding
; normalizes the encoding of a string in place.