Method: Origami::PDF::LinearParser#parse

Defined in:
lib/origami/parsers/pdf/linear.rb

#parse(stream) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/origami/parsers/pdf/linear.rb', line 32

def parse(stream)
    super

    pdf = parse_initialize

    #
    # Parse each revision
    #
    revision = 0
    until @data.eos? do
        begin
            pdf.add_new_revision unless revision.zero?

            parse_revision(pdf, revision)
            revision = revision + 1

        rescue
            error "Cannot read : " + (@data.peek(10) + "...").inspect
            error "Stopped on exception : " + $!.message
            STDERR.puts $!.backtrace.join($/)

            break
        end
    end

    pdf.loaded!

    parse_finalize(pdf)
end