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