class Thingfish::Processor::PDF

Attach PDF metadata to the Adobe Portable Document Format.

Constants

REVISION

Version control revision

VERSION

Package version

Public Instance Methods

on_request( request ) click to toggle source

Synchronous processor API – extract metadata from uploaded PDFs

# File lib/thingfish/processor/pdf.rb, line 30
def on_request( request )
        reader   = ::PDF::Reader.new( request.body )
        metadata = self.extract_pdf_metadata( reader )

        request.add_metadata( metadata )
end

Protected Instance Methods

extract_pdf_metadata( reader ) click to toggle source

Normalize metadata from the PDFReader object and return it as a hash.

# File lib/thingfish/processor/pdf.rb, line 44
def extract_pdf_metadata( reader )
        self.log.debug "Extracting PDF metadata..."

        pdf_metadata = {
                'pdf:version'   => reader.pdf_version,
                'pdf:pagecount' => reader.page_count,
        }.reject {|_,v| v.nil? }

        reader.info.each_pair do |key, val|
                pdf_metadata[ "pdf:#{key}" ] = val unless val.is_a?( ::PDF::Reader::Reference )
        end

        self.log.debug "  raw PDF metadata: %p" % [ pdf_metadata ]
        return pdf_metadata
end