# File lib/pdf/reader/object_hash.rb, line 78
    def [](key)
      return default if key.to_i <= 0
      begin
        unless key.kind_of?(PDF::Reader::Reference)
          key = PDF::Reader::Reference.new(key.to_i, 0)
        end
        if xref[key].is_a?(Fixnum)
          buf = new_buffer(xref[key])
          Parser.new(buf, self).object(key.id, key.gen)
        elsif xref[key].is_a?(PDF::Reader::Reference)
          container_key = xref[key]
          object_streams[container_key] ||= PDF::Reader::ObjectStream.new(object(container_key))
          object_streams[container_key][key.id]
        end
      rescue InvalidObjectError
        return default
      end
    end