lib/prawn/reference.rb in prawn-0.1.1 vs lib/prawn/reference.rb in prawn-0.1.2

- old
+ new

@@ -4,10 +4,12 @@ # # Copyright April 2008, Gregory Brown. All Rights Reserved. # # This is free software. Please see the LICENSE and COPYING files for details. +require 'zlib' + module Prawn class Reference #:nodoc: attr_accessor :gen, :data, :offset @@ -15,10 +17,11 @@ def initialize(id,data) @identifier = id @gen = 0 @data = data + @compressed = false end def object output = "#{@identifier} #{gen} obj\n" << Prawn::PdfObject(data) << "\n" @@ -27,16 +30,22 @@ end output << "endobj\n" end def <<(data) + raise 'Cannot add data to a stream that is compressed' if @compressed (@stream ||= "") << data end def to_s "#{@identifier} #{gen} R" end - + + def compress_stream + @stream = Zlib::Deflate.deflate(@stream) + @data[:Filter] = :FlateDecode + @compressed = true + end end module_function def Reference(*args) #:nodoc: