lib/hexapdf/task/optimize.rb in hexapdf-0.1.0 vs lib/hexapdf/task/optimize.rb in hexapdf-0.2.0

- old
+ new

@@ -93,12 +93,15 @@ unused = Set.new(doc.task(:dereference)) rev = doc.revisions.add oid = 1 doc.revisions[0].each do |obj| - next if obj.null? || unused.include?(obj) || (obj.type == :ObjStm) || - (obj.type == :XRef && xref_streams != :preserve) + if obj.null? || unused.include?(obj) || (obj.type == :ObjStm) || + (obj.type == :XRef && xref_streams != :preserve) + obj.data.value = nil + next + end delete_fields_with_defaults(obj) obj.oid = oid obj.gen = 0 rev.add(obj) @@ -198,10 +201,10 @@ end # Compresses the contents of all pages by parsing and then serializing again. The HexaPDF # serializer is already optimized for small output size so nothing else needs to be done. def self.compress_pages(doc) - doc.pages.each_page do |page| + doc.pages.each do |page| processor = SerializationProcessor.new HexaPDF::Content::Parser.parse(page.contents, processor) page.contents = processor.result page[:Contents].set_filter(:FlateDecode) end