/usr/lib/ruby/vendor_ruby/pdf/reader/object_stream.rb is in ruby-pdf-reader 1.3.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | # coding: utf-8
class PDF::Reader
# provides a wrapper around a PDF stream object that contains other objects in it.
# This is done for added compression and is described as an "Object Stream" in the spec.
#
class ObjectStream # :nodoc:
def initialize(stream)
@dict = stream.hash
@data = stream.unfiltered_data
end
def [](objid)
if offsets[objid].nil?
nil
else
buf = PDF::Reader::Buffer.new(StringIO.new(@data), :seek => offsets[objid])
parser = PDF::Reader::Parser.new(buf)
parser.parse_token
end
end
def size
@dict[:N]
end
private
def offsets
@offsets ||= {}
return @offsets if @offsets.keys.size > 0
size.times do
@offsets[buffer.token.to_i] = first + buffer.token.to_i
end
@offsets
end
def first
@dict[:First]
end
def buffer
@buffer ||= PDF::Reader::Buffer.new(StringIO.new(@data))
end
end
end
|