Sha256: 39c3cbc40f655d866f7399c96b4ec581ed2973199cae2e9312e3c44bee923787

Contents?: true

Size: 1.07 KB

Versions: 6

Compression:

Stored size: 1.07 KB

Contents

# coding: utf-8

class PDF::Reader

  class MetadataStrategy < AbstractStrategy # :nodoc:

    def self.to_sym
      :metadata
    end

    def process
      return false unless options[:metadata]

      # may be useful to some people
      callback(:pdf_version, ohash.pdf_version)

      # ye olde metadata
      callback(:metadata, [decoded_info]) if info?

      # new style xml metadata
      callback(:xml_metadata, [xml_metadata]) if xml_metadata?

      # page count
      if pages?
        count = ohash.object(pages[:Count])
        callback(:page_count, count.to_i)
      end
    end

    private

    def xml_metadata
      return @xml_metadata if defined?(@xml_metadata)

      if root[:Metadata].nil?
        @xml_metadata = nil
      else
        string = ohash.object(root[:Metadata]).unfiltered_data
        string.force_encoding("utf-8") if string.respond_to?(:force_encoding)
        @xml_metadata = string
      end
    end

    def xml_metadata?
      xml_metadata ? true : false
    end

    def decoded_info
      @decoded_info ||= decode_strings(info)
    end

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
pdf-reader-0.10.1 lib/pdf/reader/metadata_strategy.rb
pdf-reader-0.10.0 lib/pdf/reader/metadata_strategy.rb
pdf-reader-0.9.3 lib/pdf/reader/metadata_strategy.rb
pdf-reader-0.9.2 lib/pdf/reader/metadata_strategy.rb
pdf-reader-0.9.1 lib/pdf/reader/metadata_strategy.rb
pdf-reader-0.9.0 lib/pdf/reader/metadata_strategy.rb