class PDF::Writer::Object::Font

An object to hold the font description

Constants

Details

Attributes

encoding[R]

Valid values: WinAnsiEncoding, MacRomanEncoding, MacExpertEncoding, none, nil, or an instance of PDF::Writer::Object::FontEncoding.

font_id[R]
subtype[R]

The type of the font: Type1 and TrueType are the only values supported by

Public Instance Methods

to_s() click to toggle source
# File lib/pdf/writer/object/font.rb, line 58
def to_s
  res = "\n#{@oid} 0 obj\n<< /Type /Font\n/Subtype /#{@subtype}\n"
  res << "/Name /F#{@font_id}\n/BaseFont /#{@name}\n"
  if @encoding.kind_of?(PDF::Writer::Object::FontEncoding)
    res << "/Encoding #{@encoding.oid} 0 R\n"
  elsif @encoding
    res << "/Encoding /#{@encoding}\n" if @encoding
  end
  res << "/FirstChar #{@firstchar}\n" unless @firstchar.nil?
  res << "/LastChar #{@lastchar}\n" unless @lastchar.nil?
  res << "/Widths #{@widths} 0 R\n" unless @widths.nil?
  res << "/FontDescriptor #{@fontdescriptor} 0 R\n" unless @fontdescriptor.nil?
  res << ">>\nendobj"
end

Public Class Methods

new(parent, name, encoding = 'WinAnsiEncoding', subtype = 'Type1') click to toggle source
# File lib/pdf/writer/object/font.rb, line 15
def initialize(parent, name, encoding = 'WinAnsiEncoding', subtype = 'Type1')
  super(parent)

  @name     = name
  @subtype  = subtype
  @font_id  = @parent.__send__(:generate_font_id)

  if encoding.kind_of?(PDF::Writer::Object::FontEncoding)
    @encoding           = encoding
  elsif encoding == 'none' or encoding.nil?
    @encoding           = nil
  else
    @encoding           = encoding
  end

  @parent.pages << self

  @firstchar      = nil
  @lastchar       = nil
  @widths         = nil
  @fontdescriptor = nil
end