Module: CombinePDF::PDFFilter
- Defined in:
- lib/combine_pdf/combine_pdf_filter.rb
Overview
This is an internal class. you don’t need it.
Class Method Summary collapse
-
.deflate_object(object = nil, filter = :none) ⇒ Object
deflate / compress an object.
-
.inflate_object(object = nil) ⇒ Object
inflate / decompress an object.
Class Method Details
.deflate_object(object = nil, filter = :none) ⇒ Object
deflate / compress an object.
isn’t supported yet!
- object
-
object to compress.
- filter
-
filter to use.
26 27 28 |
# File 'lib/combine_pdf/combine_pdf_filter.rb', line 26 def deflate_object object = nil, filter = :none false end |
.inflate_object(object = nil) ⇒ Object
inflate / decompress an object
- object
-
object to decompress.
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/combine_pdf/combine_pdf_filter.rb', line 33 def inflate_object object = nil filter_array = object[:Filter] if filter_array.is_a?(Hash) && filter_array[:is_reference_only] filter_array = filter_array[:referenced_object] end if filter_array.is_a?(Symbol) filter_array = [filter_array] end filter_array = [] if filter_array.nil? params_array = object[:DecodeParms] if params_array.is_a?(Hash) && params_array[:is_reference_only] params_array = params_array[:referenced_object] end unless params_array.is_a?(Array) params_array = [params_array] end while filter_array[0] case filter_array[0] when :FlateDecode raise_unsupported_error params_array[0] unless params_array[0].nil? if params_array[0] && params_array[0][:Predictor].to_i > 1 bits = params_array[0][:BitsPerComponent] || 8 predictor = params_array[0][:Predictor].to_i columns = params_array[0][:Columns] || 1 if (2..9).include? params_array[0][:Predictor].to_i #### # prepare TIFF group elsif (10..15).include? params_array[0][:Predictor].to_i == 2 #### # prepare PNG group end else inflator = Zlib::Inflate.new object[:raw_stream_content] = inflator.inflate object[:raw_stream_content] begin inflator.finish rescue end inflator.close object[:Length] = object[:raw_stream_content].bytesize end when nil true else return false end params_array.shift filter_array.shift end object.delete(:Filter) true end |