Object
An internal PDF::Reader class that reads objects from the PDF file and converts them into useable ruby objects (hash’s, arrays, true, false, etc)
Create a new parser around a PDF::Reader::Buffer object
buffer - a PDF::Reader::Buffer object that contains PDF data ohash - a PDF::Reader::ObjectHash object that can return objects from the PDF file
# File lib/pdf/reader/parser.rb, line 36 def initialize (buffer, ohash=nil) @buffer = buffer @ohash = ohash end
Reads an entire PDF object from the buffer and returns it as a Ruby String. If the object is a content stream, returns both the stream and the dictionary that describes it
id - the object ID to return gen - the object revision number to return
# File lib/pdf/reader/parser.rb, line 75 def object (id, gen) Error.assert_equal(parse_token, id) Error.assert_equal(parse_token, gen) Error.str_assert(parse_token, "obj") obj = parse_token post_obj = parse_token if post_obj == "stream" stream(obj) else obj end end
Reads the next token from the underlying buffer and convets it to an appropriate object
operators - a hash of supported operators to read from the underlying buffer.
# File lib/pdf/reader/parser.rb, line 45 def parse_token (operators={}) token = @buffer.token case token when PDF::Reader::Reference, nil then return token when "/" then return pdf_name() when "<<" then return dictionary() when "[" then return array() when "(" then return string() when "<" then return hex_string() when "true" then return true when "false" then return false when "null" then return nil when "obj", "endobj", "stream", "endstream" then return Token.new(token) when "stream", "endstream" then return Token.new(token) when ">>", "]", ">", ")" then return Token.new(token) else if operators.has_key?(token) then return Token.new(token) elsif token =~ /\d*\.\d/ then return token.to_f else return token.to_i end end end
Generated with the Darkfish Rdoc Generator 2.