# File lib/pdf/reader/object_hash.rb, line 37
    def initialize(input)
      if input.respond_to?(:seek) && input.respond_to?(:read)
        @io = input
      elsif File.file?(input.to_s)
        if File.respond_to?(:binread)
          input = File.binread(input.to_s)
        else
          input = File.read(input.to_s)
        end
        @io = StringIO.new(input)
      else
        raise ArgumentError, "input must be an IO-like object or a filename"
      end
      @pdf_version = read_version
      @xref        = PDF::Reader::XRef.new(@io)
      @trailer     = @xref.trailer
    end