class PDFBeads::PDFBuilder::Doc

Public Class Methods

new() click to toggle source
# File lib/pdfbeads/pdfdoc.rb, line 102
def initialize()
  @objs  = Array.new()
  @pages = Array.new()
end

Public Instance Methods

addObject(o) click to toggle source
# File lib/pdfbeads/pdfdoc.rb, line 107
def addObject(o)
  @objs.push(o)
  o
end
addPage(p) click to toggle source
# File lib/pdfbeads/pdfdoc.rb, line 112
def addPage(p)
  @pages.push(p)
  addObject(p)
end
to_s() click to toggle source
# File lib/pdfbeads/pdfdoc.rb, line 117
def to_s()
  a = ''
  j = 0
  offsets = Array.new()

  add = lambda{ |x|
    x.to_binary
    a << x
    j += x.length
  }
  add.call( "%PDF-1.5\n" )
  @objs.each do |xobj|
    offsets << j
    add.call( "#{xobj.getID} 0 obj\n" )
    add.call( "#{xobj.to_s}\n" )
  end
  xrefstart = j
  a << "xref\n"
  a << "0 #{offsets.length + 1}\n"
  a << "0000000000 65535 f \n"
  offsets.each do |off|
    a << sprintf("%010d 00000 n \n", off)
  end
  a << "\n"
  a << "trailer\n"
  a << "<< /Size #{offsets.length + 1} /Root 1 0 R /Info 2 0 R >>\n"
  a << "startxref\n"
  a << "#{xrefstart.to_s}\n"
  a << "%%EOF"

  a
end