class 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 Class Methods
new(parent, name, encoding = 'WinAnsiEncoding', subtype = 'Type1')
click to toggle source
Calls superclass method
# 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
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