lib/hexapdf/task/optimize.rb in hexapdf-0.30.0 vs lib/hexapdf/task/optimize.rb in hexapdf-0.31.0

- old
+ new

@@ -36,10 +36,12 @@ require 'set' require 'hexapdf/serializer' require 'hexapdf/content/parser' require 'hexapdf/content/operator' +require 'hexapdf/type/xref_stream' +require 'hexapdf/type/object_stream' module HexaPDF module Task # Task for optimizing the PDF document. @@ -122,11 +124,11 @@ doc.revisions.all.delete_at(0) if object_streams == :generate process_object_streams(doc, :generate, xref_streams) elsif xref_streams == :generate - doc.add({Type: :XRef}) + doc.add({}, type: Type::XRefStream) end end # Processes the object streams in each revision according to method: For :preserve, nothing # is done, for :delete all object streams are deleted and for :generate objects are packed @@ -148,18 +150,18 @@ delete_fields_with_defaults(obj) end end objects_to_delete.each {|obj| rev.delete(obj) } if xref_streams == :generate && !xref_stream - rev.add(doc.wrap({Type: :XRef}, oid: doc.revisions.next_oid)) + rev.add(doc.wrap({}, type: Type::XRefStream, oid: doc.revisions.next_oid)) end end when :generate doc.revisions.each do |rev| xref_stream = false count = 0 - objstms = [doc.wrap({Type: :ObjStm})] + objstms = [doc.wrap({}, type: Type::ObjectStream)] old_objstms = [] rev.each do |obj| case obj.type when :XRef xref_stream = true @@ -171,20 +173,20 @@ next if obj.respond_to?(:stream) objstms[-1].add_object(obj) count += 1 if count == 200 - objstms << doc.wrap({Type: :ObjStm}) + objstms << doc.wrap({}, type: Type::ObjectStream) count = 0 end end old_objstms.each {|objstm| rev.delete(objstm) } objstms.each do |objstm| objstm.data.oid = doc.revisions.next_oid rev.add(objstm) end - rev.add(doc.wrap({Type: :XRef}, oid: doc.revisions.next_oid)) unless xref_stream + rev.add(doc.wrap({}, type: Type::XRefStream, oid: doc.revisions.next_oid)) unless xref_stream end end end # Processes the cross-reference streams in each revision according to method: For :preserve, @@ -205,10 +207,10 @@ xref_stream = false rev.each do |obj| xref_stream = true if obj.type == :XRef delete_fields_with_defaults(obj) end - rev.add(doc.wrap({Type: :XRef}, oid: doc.revisions.next_oid)) unless xref_stream + rev.add(doc.wrap({}, type: Type::XRefStream, oid: doc.revisions.next_oid)) unless xref_stream end end end # Deletes field entries of the object that are optional and currently set to their default